Реорганизовать массив, в котором отсутствуют ключевые элементы - PHP - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть массив, который выводит вот так, вы заметите, что при выводе ключ для [2] не содержит данных.Как я могу пройти через этот массив и убедиться, что массив не имеет отсутствующих ключей и данные отсортированы.Просто используя данные в массиве.

print_r($layout_array); 

Array
(
    [0] => Array
        (
            [row_identifier] => home
            [row_text_title] => home
            [original_row_position] => 1
            [row_position] => 1
            [row_show] => yes
            [row_link_ref] => https://demo.ul
            [button_styling] => off
            [tab] => self
        )

    [1] => Array
        (
            [row_identifier] => benefits
            [row_text_title] => benefits
            [row_link_ref] => #benefits
            [button_styling] => off
            [tab] => self
            [row_position] => 2
            [original_row_position] => 2
            [row_show] => yes
        )

    [3] => Array
        (
            [row_identifier] => about
            [row_text_title] => about
            [row_link_ref] => #about
            [button_styling] => off
            [tab] => self
            [row_show] => no
        )

    [4] => Array
        (
            [row_identifier] => team
            [row_text_title] => team
            [row_link_ref] => #team
            [button_styling] => off
            [tab] => self
            [row_position] => 4
            [original_row_position] => 4
            [row_show] => yes
        )
)

Спасибо!

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Если вы хотите отсортировать данные и переиндексировать, чтобы удалить недостающие ключи, вы можете использовать array_multisort.Например, если вы хотите отсортировать по row_identifier:

$sort_by_column = 'row_identifier';
array_multisort(array_column($layout_array, $sort_by_column), $layout_array);
print_r($layout_array);

Вывод:

Array
(
    [0] => Array
        (
            [row_identifier] => about
            [row_text_title] => about
            [row_link_ref] => #about
            [button_styling] => off
            [tab] => self
            [row_show] => no
        )

    [1] => Array
        (
            [row_identifier] => benefits
            [row_text_title] => benefits
            [row_link_ref] => #benefits
            [button_styling] => off
            [tab] => self
            [row_position] => 2
            [original_row_position] => 2
            [row_show] => yes
        )

    [2] => Array
        (
            [row_identifier] => home
            [row_text_title] => home
            [original_row_position] => 1
            [row_position] => 1
            [row_show] => yes
            [row_link_ref] => https://demo.ul
            [button_styling] => off
            [tab] => self
        )

    [3] => Array
        (
            [row_identifier] => team
            [row_text_title] => team
            [row_link_ref] => #team
            [button_styling] => off
            [tab] => self
            [row_position] => 4
            [original_row_position] => 4
            [row_show] => yes
        )
)

Демонстрация на 3v4l.org

Обратите внимание, что вы можете сортировать только по ключу, который присутствует во всех значениях.

0 голосов
/ 21 февраля 2019

Если вы хотите выполнить без функции php:

$new_array = array();            
foreach($test as $variable){    // $test is your array
  array_push($new_array,$variable);
}
0 голосов
/ 21 февраля 2019

Вы можете использовать array_values ​​, что в основном "сбросит" ключи:

$layout_array = array_values($layout_array);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...