Преобразовать первый элемент массива в строку в PHP - PullRequest
36 голосов
/ 07 июня 2011

У меня есть массив PHP, и я хочу преобразовать его в строку.

Я знаю, что могу использовать join или implode, но в моем случае массив имеет только один элемент. Почему я должен использовать объединенные значения в массиве только с одним элементом?

Этот массив является выводом моей функции PHP, которая возвращает массив:

Array(18 => 'Something');

Как мне преобразовать это в строку?

Ответы [ 13 ]

36 голосов
/ 07 июня 2011

Есть ли другой способ преобразовать этот массив в строку?

Вы не хотите преобразовывать массив в строку, вы хотите получить значение единственного массиваэлемент, если я правильно прочитал.

<?php
  $foo = array( 18 => 'Something' );
  $value = array_shift( $foo );
  echo $value; // 'Something'.

?>

Используя array_shift, вам не нужно беспокоиться об индексе.

EDIT : Имейте в виду, array_shift неединственная функция, которая будет возвращать одно значение.array_pop (), current (), end (), reset (), они все вернут этот единственный элемент.Все опубликованные решения работают.Используя смещение массива, вы можете быть уверены, что получите только значение first массива, даже если их несколько.

28 голосов
/ 07 июня 2011

Есть ли другой способ преобразовать этот массив в строку?

Да, есть.serialize().Он может конвертировать различные типы данных (включая объекты и массивы) в строковое представление, которое вы можете unserialize() позднее.Сериализация ассоциативного массива, такого как Array(18 => 'Somthing'), сохранит и ключи, и значения:

<?php
$a = array(18 => 'Something');
echo serialize($a);                                   // a:1:{i:18;s:9:"Something";}
var_dump(unserialize('a:1:{i:18;s:9:"Something";}')); // array(1) {
                                                      //   [18]=>
                                                      //   string(9) "Something"
                                                      // }
11 голосов
/ 17 декабря 2012

Простой способ создать массив в строковом массиве PHP:

<?PHP
    $array = array("firstname"=>"John", "lastname"=>"doe");
    $json = json_encode($array);
    $phpStringArray = str_replace(array("{", "}", ":"), 
                                  array("array(", "}", "=>"), $json);
    echo phpStringArray;
?>
8 голосов
/ 07 июня 2011

Вы можете использовать функцию reset () , она вернет первый элемент массива.

6 голосов
/ 07 июня 2011

implode или join (это одно и то же) будет работать здесь.Кроме того, вы можете просто вызвать array_pop и получить значение единственного элемента в массиве.

5 голосов
/ 20 июля 2011

Если ваша цель - вывести массив в строку для отладки: вы можете использовать функцию print_r () , которая получает параметр выражения (ваш массив), и необязательный логический параметр возврата. Обычно функция используется для отображения массива, но если вы установите возвращаемый параметр как true, он вернет впечатление от массива.

Пример:

    //We create a 2-dimension Array as an example
    $ProductsArray = array();

    $row_array['Qty'] = 20;
    $row_array['Product'] = "Cars";

    array_push($ProductsArray,$row_array);

    $row_array2['Qty'] = 30;
    $row_array2['Product'] = "Wheels";

    array_push($ProductsArray,$row_array2);

    //We save the Array impression into a variable using the print_r function
    $ArrayString = print_r($ProductsArray, 1);

    //You can echo the string
    echo $ArrayString;

    //or Log the string into a Log file
    $date = date("Y-m-d H:i:s", time());
    $LogFile = "Log.txt";
    $fh = fopen($LogFile, 'a') or die("can't open file");
    $stringData = "--".$date."\n".$ArrayString."\n";
    fwrite($fh, $stringData);
    fclose($fh);

Это будет вывод:

Array
(
    [0] => Array
        (
            [Qty] => 20
            [Product] => Cars
        )

    [1] => Array
        (
            [Qty] => 30
            [Product] => Wheels
        )

)
4 голосов
/ 23 октября 2013

A For() петля очень полезна. Вы можете добавить значение вашего массива в другую переменную, например так:

<?php
    $dizi=array('mother','father','child'); //This is array

    $sayi=count($dizi);
    for ($i=0; $i<$sayi; $i++) {
        $dizin.=("'$dizi[$i]',"); //Now it is string...
    }
         echo substr($dizin,0,-1); //Write it like string :D
?>

В этом коде мы добавили значения $ dizi и запятую к $ dizin:

$dizin.=("'$dizi[$i]',");

Теперь

$dizin = 'mother', 'father', 'child',

Это строка, но у нее есть лишняя запятая:)

А потом мы удалили последнюю запятую, substr($dizin, 0, -1);

Выход:

'мать', 'отец', 'ребенок'

4 голосов
/ 13 июня 2012

Вы можете использовать print_r и html интерпретировать его, чтобы преобразовать его в строку с символами новой строки, например:

<code>$arraystring = print_r($your_array, true); 

$arraystring = '<pre>'.print_r($your_array, true).'
';

Или вы можете смешать множество массивов и переменных, если вы сделаете это

ob_start();
print_r($var1);
print_r($arr1);
echo "blah blah";
print_r($var2);
print_r($var1);
$your_string_var = ob_get_clean();
2 голосов
/ 24 марта 2014

Используйте встроенную функцию в PHP, implode(array, separator):

<?php
    $ar = array("parth","raja","nikhar");
    echo implode($ar,"/");
?>

Результат: parth / raja / nikhar

2 голосов
/ 04 января 2014

Преобразование массива в строку в PHP:

  1. Используйте функцию PHP join следующим образом:

    $my_array = array(4, 1, 8);
    
    print_r($my_array);
    Array
    (
        [0] => 4
        [1] => 1
        [2] => 8
    )
    
    $result_string = join(',', $my_array);
    echo $result_string;
    

    , который разделяет элементы в массиве запятыми в строку:

    4,1,8
    
  2. Или используйте функцию PHP implode следующим образом:

    $my_array = array(4, 1, 8);
    echo implode($my_array);
    

    Что печатает:

    418
    
  3. Вот что происходит, если вы присоединяете или взламываете пары значений ключа в массиве PHP

    php> $keyvalues = array();
    
    php> $keyvalues['foo'] = "bar";
    
    php> $keyvalues['pyramid'] = "power";
    
    php> print_r($keyvalues);
    Array
    (
        [foo] => bar
        [pyramid] => power
    )
    
    php> echo join(',', $keyvalues);
    bar,power
    php> echo implode($keyvalues);
    barpower
    php>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...