Добрый вечер. Помогите пожалуйста сделать выборку из массива. Упрощённо массив выглядит так: Код (Text): Array ( [0] => Array ( [0] => Наименование [1] => Марка [2] => Диаметр, мм ) [1] => Array ( [0] => Труба из штамповой стали [1] => Х12Ф1 [2] => 3 ) [2] => Array ( [0] => Труба из штамповой стали [1] => 7Х3 [2] => 4 ) [3] => Array ( [0] => Труба из штамповой стали [1] => 4Х5В2ФС [2] => 5 ) [4] => Array ( [0] => Труба из штамповой стали [1] => 5ХГМ [2] => 6 ) [5] => Array ( [0] => Труба из штамповой стали [1] => 6ХВ2С [2] => 6 ) ) Выборку необходимо делать по одному или сразу нескольким значениям. Буду благодарен за любую наводку. На выходе при выборке по значению "Труба из штамповой стали", должен получаться срез массива, в данном случае, с 1 по 5 индекс. Если выборка по "Труба из штамповой стали" + Диаметр, мм - "6". Нужно получить срез в данном примере элементы с индексами 4 и 5.
@Yankovitz, вот, например, простейший вариант: PHP: $arr = [ ['Наименование', 'Марка', 'Диаметр, мм'], ['Труба из штамповой стали', 'Х12Ф1', 3], ['Труба из штамповой стали', '7Х3', 4], ['Труба из штамповой стали', '4Х5В2ФС', 5], ['Труба из штамповой стали', '5ХГМ', 6], ['Труба из штамповой стали', '6ХВ2С', 6], ]; function myFilter($item) { global $filter; $result = true; foreach($filter as $key => $value) { if(is_null($value)) { continue; } if($item[$key] != $value) { $result = false; } } return $result; } $filter = ['Труба из штамповой стали', null, null]; $aResult = array_filter($arr, 'myFilter'); $filter = ['Труба из штамповой стали', null, 6]; $aResult2 = array_filter($arr, 'myFilter'); var_dump($aResult, $aResult2);