многомерное смешанное ассоциативное / числовое смещение массива - PullRequest
2 голосов
/ 18 мая 2009

У меня проблема, которую нужно исправить раньше, чем позже. если бы у меня было время переписать весь сценарий, я бы это сделал, но такова жизнь программиста, верно? в любом случае, я взял на себя проект, и у меня есть многомерный смешанный ассоциативный / числовой массив, например, так:

Array
(
    [item1] => Array
        (
            [dataset] => Array()
            [3] => Array()
            [7] => Array()
        )
    [item2] => Array
        (
            [dataset] => Array()
            [4] => Array()
            [19] => Array()
            [2] => Array()
        )
)

что мне нужно сделать, это сдвинуть индекс набора данных в каждом из индексов itemX , чтобы он стал последним индексом, который приведет к этому:

Array
(
    [item1] => Array
        (
            [3] => Array()
            [7] => Array()
            [dataset] => Array()
        )
    [item2] => Array
        (
            [4] => Array()
            [19] => Array()
            [2] => Array()
            [dataset] => Array()
        )
)

несколько вещей, которые могут помочь в этом, состоят в том, что я знаю , что индекс набора данных всегда будет первым индексом в itemX индекс и ключ всегда будут «набором данных», а остальные всегда будут числовыми индексами. есть ли вообще сделать это в php? тот факт, что это смешанный массив, бросает меня. я не могу получить, чтобы числовые индексы сбрасывались и начинались с 0. Это не имеет значения, если их порядок смещен, только то, что они все идут перед индексом «набора данных». может быть, это только один из тех дней ....: \ любые предложения или комментарии очень ценятся.

1 Ответ

2 голосов
/ 18 мая 2009

Цикл, хотя все элементы, как это:

foreach ($all_items as $key =>$items) {
   $dataset = $items['dataset'];
   unset($all_items[$key]['dataset']); // Removing it (from the top)
   $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom)
}

Отключение элемента «набор данных» и его добавление снова приведет к добавлению элемента внизу.

Важно, чтобы вы изменили исходный массив напрямую, а не $ items из foreach, потому что эти изменения не повлияют на исходный массив.

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