Преобразование первого элемента массива в строку в PHP

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

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

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

 Array(18 => 'Something'); 

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

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

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

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

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

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

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

Да, есть. 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" // } - <?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" // } 

Простым способом создания массива в массив строк PHP является:

 <?PHP $array = array("firstname"=>"John", "lastname"=>"doe"); $json = json_encode($array); $phpStringArray = str_replace(array("{", "}", ":"), array("array(", "}", "=>"), $json); echo phpStringArray; ?> 

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

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

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

Пример:

  //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("Ymd 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 ) ) 

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

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

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

 ob_start(); print_r($var1); print_r($arr1); echo "blah blah"; print_r($var2); print_r($var1); $your_string_var = ob_get_clean(); 

Цикл 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);

Вывод:

«Мать», «отец», «ребенок»

Поскольку проблема с пробелами возникает только при экспорте массивов, вы можете использовать исходный var_export () для всех других типов переменных. Эта функция выполняет задание и снаружи работает так же, как var_export ().

 <?php function var_export_min($var, $return = false) { if (is_array($var)) { $toImplode = array(); foreach ($var as $key => $value) { $toImplode[] = var_export($key, true).'=>'.var_export_min($value, true); } $code = 'array('.implode(',', $toImplode).')'; if ($return) return $code; else echo $code; } else { return var_export($var, $return); } } ?> 

http://www.php.net/manual/en/function.var-export.php#54440

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

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

     $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. Или используйте функцию implode PHP следующим образом:

     $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> 

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

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

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

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

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

 $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 

Для полноты и простоты, должно быть хорошо:

 $str = var_export($array, true); 

Это хорошо работает в моем случае, но другие, похоже, имеют проблемы с пробелами. В этом случае ответ ucefkh обеспечивает обходное решение из комментария в руководстве PHP.