Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как седелать выборку из двумерного массива по ключам
подскажите как выбрать из этого массива данные и поместить их в ондномерный массив, например для ключей optA =10 и optB =1, у меня даные по ключу optA помещаются в разные таблицы, а optВ строки в этих таблицах.
Prizma
Отправлено: 11 Ноября, 2016 - 13:58:59
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
1. Можно сначало отобрать нужные значения array_filter
2. А потом создать 2 твоих массива с помощью array_column
Например вот так:
Спасибо! Вот эта часть подошла:
$filterArray = array_filter($array, function($el) {
return ($el['optA'] == 10) && ($el['optB'] == 1);
}); (Добавление)
Подскжите еще как в условие фильтра:
$el['optA'] == 10) && ($el['optB'] == 1
вместо 10 и 1 передать переменные объявленные за пределами фильтра или это нельзя сделать? Я попытался передать переменные, которые инициализирую выше и получаю сообщение об ошибке, что в условии они не инициалицированны.
Prizma
Отправлено: 11 Ноября, 2016 - 15:18:48
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
Сергей Ш. пишет:
вместо 10 и 1 передать переменные объявленные за пределами фильтра или это нельзя сделать? Я попытался передать переменные, которые инициализирую выше и получаю сообщение об ошибке, что в условии они не инициалицированны.
Покинул форум
Сообщений всего: 9
Дата рег-ции: Нояб. 2016
Помог: 0 раз(а)
Prizma пишет:
Сергей Ш. пишет:
вместо 10 и 1 передать переменные объявленные за пределами фильтра или это нельзя сделать? Я попытался передать переменные, которые инициализирую выше и получаю сообщение об ошибке, что в условии они не инициалицированны.
вместо 10 и 1 передать переменные объявленные за пределами фильтра или это нельзя сделать? Я попытался передать переменные, которые инициализирую выше и получаю сообщение об ошибке, что в условии они не инициалицированны.
а если при задании условий отбора, функция ничего не возвращает, как это определить, потому что у меня в NetBeans пишет array[0], проверял isset(), но она показывает что значение установленно
Prizma
Отправлено: 12 Ноября, 2016 - 02:14:47
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
Сергей Ш. пишет:
а если при задании условий отбора, функция ничего не возвращает, как это определить, потому что у меня в NetBeans пишет array[0], проверял isset(), но она показывает что значение установленно
var_dump $array, $a и $b сделай, там все ответы, где то чего-то не совпадает по условию.
И возвращать ничего не может, скорее всего возвращает пустой массив, а это значит, что callback-функция не разу не вернула true, значит ошибка либо в условии, либо в переданном массиве.
Проверь может в условии ключи неправильно указал (регистр важен) или значения передаются некорректные.
Сергей Ш.
Отправлено: 12 Ноября, 2016 - 09:18:41
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Нояб. 2016
Помог: 0 раз(а)
Prizma пишет:
Сергей Ш. пишет:
а если при задании условий отбора, функция ничего не возвращает, как это определить, потому что у меня в NetBeans пишет array[0], проверял isset(), но она показывает что значение установленно
var_dump $array, $a и $b сделай, там все ответы, где то чего-то не совпадает по условию.
И возвращать ничего не может, скорее всего возвращает пустой массив, а это значит, что callback-функция не разу не вернула true, значит ошибка либо в условии, либо в переданном массиве.
Проверь может в условии ключи неправильно указал (регистр важен) или значения передаются некорректные.
мне как раз и надо чтобы фильтр ничего не возвращал, тогда я не заполняю тэги <td>, когда возвращает, тогда заполняю, а нашел как отлавливать это функцией count, но только так как у меня опыт в этой сфере маленький, возникает много вопросов. Если у меня фильтр возвращает значения то я пишу <td>arr['key']</td>, а если ничего не возвращается то <td></td>, и в браузере выскакивает сообщение что я пытаюсь использовать не инициализированную переменную, вот этот момент мне не понятен, или нельзя выводить пустую ячейку? (Добавление)
Сергей Ш. пишет:
Prizma пишет:
Сергей Ш. пишет:
а если при задании условий отбора, функция ничего не возвращает, как это определить, потому что у меня в NetBeans пишет array[0], проверял isset(), но она показывает что значение установленно
var_dump $array, $a и $b сделай, там все ответы, где то чего-то не совпадает по условию.
И возвращать ничего не может, скорее всего возвращает пустой массив, а это значит, что callback-функция не разу не вернула true, значит ошибка либо в условии, либо в переданном массиве.
Проверь может в условии ключи неправильно указал (регистр важен) или значения передаются некорректные.
мне как раз и надо чтобы фильтр ничего не возвращал, тогда я не заполняю тэги <td>, когда возвращает, тогда заполняю, а нашел как отлавливать это функцией count, но только так как у меня опыт в этой сфере маленький, возникает много вопросов. Если у меня фильтр возвращает значения то я пишу <td>arr['key']</td>, а если ничего не возвращается то <td></td>, и в браузере выскакивает сообщение что я пытаюсь использовать не инициализированную переменную, вот этот момент мне не понятен, или нельзя выводить пустую ячейку?
Покинул форум
Сообщений всего: 9
Дата рег-ции: Нояб. 2016
Помог: 0 раз(а)
Prizma пишет:
Сергей Ш. пишет:
а если при задании условий отбора, функция ничего не возвращает, как это определить, потому что у меня в NetBeans пишет array[0], проверял isset(), но она показывает что значение установленно
var_dump $array, $a и $b сделай, там все ответы, где то чего-то не совпадает по условию.
И возвращать ничего не может, скорее всего возвращает пустой массив, а это значит, что callback-функция не разу не вернула true, значит ошибка либо в условии, либо в переданном массиве.
Проверь может в условии ключи неправильно указал (регистр важен) или значения передаются некорректные.
Спасибо за помощь, со всем разобрался, все проблемы решил!
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.