|
|
|
| привет всем. Имею довольно-таки большое приложение, посему с 0 его править просто не смогу... Вопрос : Есть многомерный массив, как добавить новый элемент, не "зная" верхнего элемента ? Т.е. мне нужно найти в данном массиве Array1 элемент 'svod=201' и если он есть, то добавить b2=111? а если нет, то добавить svod=201 и b2=111 ....
Array1
(
[1] => Array
(
[svod] => 201
[group] => 1
[row] => 1
[r3] => 100148
[r1] => 355250
[r2] => 5462097
[r4] => -130
[b1] => 1000
)
[2] => Array
(
[name] => Расходы
[row] => 1
[svod] => 201000000
[r3] => 54564
)
|
Если бы svod был ключевым, то просто бы и написал Array1['201']['b2']=111, но тут он вложен.. | |
|
|
|
|
|
|
|
для: larush
(03.03.2009 в 16:25)
| | Обходите массив в цикле, и проверяете, если условие выполняется, то array_push. Почитайте об этой функции. | |
|
|
|
|
|
|
|
для: sim5
(03.03.2009 в 16:42)
| | не подходит
Условие - есть Массив_А с 200 элементами и Массив_Б с 400 элементами. Если я при сканировании на каждый элемент Массива_А буду каждый раз прогонять по 400 строк Массива_Б, то это очень не эффективно.
Есть-ли еще варианты ? | |
|
|
|
|
|
|
|
для: larush
(03.03.2009 в 16:48)
| | О каком массиве Б идет речь, если изначально вы задаете вопрос о многомерном массиве? А вы думаете некая готовая РНР-функция, работая с массивом, и, например, ищущая в нем некое значение, находит его по щучьему велению? Нет, массив данных нужно обойти. | |
|
|
|
|
|
|
|
для: sim5
(03.03.2009 в 17:04)
| | Да нет.. Зачем мне приводить всю логику программы. Но я попытался обьяснить нецелесообразность сканирования массива (так как я уже прохожу по другому и ищу в первом места куда что вставить...)
Идеально было бы сделатьSVOD ключевым полем, НО.. это мне оч. много что придется переделывать. Вот и спросил, могу-ли обратиться ( заменять/добавлять) что-то в многмерный массив, не обращаясь по полному пути, пропуская 1 уровень.
Думаю что знатоки могут вывести на хитрое использование особенностей реализации массива... | |
|
|
|