Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: доступ к вложенному элементу многомерного массива
 
 автор: larush   (03.03.2009 в 16:25)   письмо автору
 
 

привет всем. Имею довольно-таки большое приложение, посему с 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, но тут он вложен..

  Ответить  
 
 автор: sim5   (03.03.2009 в 16:42)   письмо автору
 
   для: larush   (03.03.2009 в 16:25)
 

Обходите массив в цикле, и проверяете, если условие выполняется, то array_push. Почитайте об этой функции.

  Ответить  
 
 автор: larush   (03.03.2009 в 16:48)   письмо автору
 
   для: sim5   (03.03.2009 в 16:42)
 

не подходит

Условие - есть Массив_А с 200 элементами и Массив_Б с 400 элементами. Если я при сканировании на каждый элемент Массива_А буду каждый раз прогонять по 400 строк Массива_Б, то это очень не эффективно.

Есть-ли еще варианты ?

  Ответить  
 
 автор: sim5   (03.03.2009 в 17:04)   письмо автору
 
   для: larush   (03.03.2009 в 16:48)
 

О каком массиве Б идет речь, если изначально вы задаете вопрос о многомерном массиве? А вы думаете некая готовая РНР-функция, работая с массивом, и, например, ищущая в нем некое значение, находит его по щучьему велению? Нет, массив данных нужно обойти.

  Ответить  
 
 автор: larush   (03.03.2009 в 17:29)   письмо автору
 
   для: sim5   (03.03.2009 в 17:04)
 

Да нет.. Зачем мне приводить всю логику программы. Но я попытался обьяснить нецелесообразность сканирования массива (так как я уже прохожу по другому и ищу в первом места куда что вставить...)
Идеально было бы сделатьSVOD ключевым полем, НО.. это мне оч. много что придется переделывать. Вот и спросил, могу-ли обратиться ( заменять/добавлять) что-то в многмерный массив, не обращаясь по полному пути, пропуская 1 уровень.
Думаю что знатоки могут вывести на хитрое использование особенностей реализации массива...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования