Konwertuj tablicę tablic jednoelementowych na tablicę wymiarową

Mam taki rodzaj tablicy:

Array
(
    [0] => Array
        (
            [0] => 88868
        )
    [1] => Array
        (
            [0] => 88867
        )
    [2] => Array
        (
            [0] => 88869
        )
    [3] => Array
        (
            [0] => 88870
        )
)

Muszę przekonwertować to do jednej tablicy wymiarowej. Jak mogę to zrobić?

Na przykład tak..
Array
(
    [0] => 88868
    [1] => 88867
    [2] => 88869
    [3] => 88870 
)

Jakaś wbudowana funkcjonalność php jest dostępna dla tej konwersji tablicy?

Author: mickmackusa, 2012-01-06

6 answers

W przypadku ograniczonego użytku, to wystarczy:

$oneDimensionalArray = array_map('current', $twoDimensionalArray);

Może to być bardziej uogólnione, gdy subarrayowie mają wiele wpisów do tego:

$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray);
 107
Author: deceze,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-06 08:05:04

PHP array_mergeDocs funkcja może spłaszczyć tablicę:

$flat = call_user_func_array('array_merge', $array);

W przypadku, gdy oryginalna tablica ma większą głębię niż 2 poziomy, SPL w PHP ma RecursiveArrayIterator można go użyć do spłaszczenia:

$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0);

Zobacz też: przekształcenie tablicy wielowymiarowej w tablicę jednowymiarową

 18
Author: hakre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-08 05:03:55

Try:

$new_array = array();
foreach($big_array as $array)
{
    foreach($array as $val)
    {
        array_push($new_array, $val);
    }    
}

print_r($new_array);
 3
Author: redmoon7777,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-06 08:09:08
$oneDim = array();
foreach($twoDim as $i) {
  $oneDim[] = $i[0];
}
 3
Author: marioosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-06 08:09:36

Yup.

$values = array(array(88868), array(88867), array(88869), array(88870));
foreach ($values as &$value) $value = $value[0];

Http://codepad.org/f9KjbCCb

 1
Author: benesch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-06 08:07:06

Podczas gdy niektóre odpowiedzi na stronie, która była wcześniej użyta do zamknięcia tej strony miały odpowiedzi, które pasowały do tego pytania. Istnieją techniki dla tego konkretnego pytania, które nie należą do drugiej strony ze względu na strukturę danych wejściowych.

Przykładowa struktura danych to tablica jednoelementowych, indeksowanych tablic.

var_export(array_column($array, 0));
To wszystko, czego wymaga to pytanie.
 0
Author: mickmackusa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-17 12:51:52