Tengo el siguiente resultado de MySQL, búsqueda de PDO, pero no puedo encontrar una respuesta adecuada para hacer las matrices, en una matriz única, en lugar de una matriz ramificada.
<?php $dataResult = array("abcdef", "People 1 - 123-456-7890 People 2 - People 3 - Abcdef Jack People 4 _ Defjkl Smack "); foreach($dataResult as $result){ if(strstr($result, PHP_EOL)){ $dataResultArray[] = explode(PHP_EOL, $result); } else { $dataResultArray[] = $result; } } print_r($dataResultArray);Estoy esperando el resultado a continuación, en contra de lo que obtengo está a continuación.
Esperado:
abcdef People 1 - 123-456-7890 People 2 - People 3 - Abcdef Jack People 4 _ Defjkl SmackProducción:
Array ( [0] => abcdef [1] => Array ( [0] => People 1 - 123-456-7890 [1] => People 2 - [2] => People 3 - Abcdef Jack [3] => People 4 _ Defjkl Smack ) )PHP tiene una buena función para este caso: array_walk_recursive :
// your multi-dimensional-array $array = [ 'item1' => 'value1', 'item2' => 'value2', 'item3' => [ 'item3a' => 'value3', ], 'item4' => [ [ 'item4a' => [ 'value4', 'value5', ], ] ] ]; array_walk_recursive($array, function($a) use (&$new) { $new[] = $a; }); print_r($new);producción
Array ( [0] => value1 [1] => value2 [2] => value3 [3] => value4 [4] => value5 )Puede usar la función recusice para convertir matrices multidimensionales en una sola matriz.
function filter($array) { static $newArray; if (is_array($array)): array_map('filter', $array); else: $newArray[] = $array; endif; return $newArray; } $array = [ 'isim' => 'Şahin', 'soyisim' => 'ERSEVER', 'yabanci_dil' => [ 'tr' => 'Türkçe', ], 'languages' => [ [ 'php' => [ 'codeigniter', 'laravel', 'symfony' ], 'javascript' => [ 'vuejs', 'react' => [ 'react', 'react-native' ] ] ] ] ]; print_r(filter($array));Resultado:
Array ( [0] => Şahin [1] => ERSEVER [2] => Türkçe [3] => codeigniter [4] => laravel [5] => symfony [6] => vuejs [7] => react [8] => react-native )