Есть массив: PHP: Array ( [0] => Array ( [0] => Наименование [1] => ГОСТ [2] => Марка ) [1] => Array ( [0] => Биметаллическая лента [1] => ГОСТ 10533-86 [2] => 20НГ ) [2] => Array ( [0] => Биметаллическая лента [1] => ГОСТ 10533-86 [2] => 24НХ ) [3] => Array ( [0] => Биметаллическая лента [1] => ГОСТ 10533-86 [2] => 45НХ ) [4] => Array ( [0] => Биметаллическая лента [1] => ГОСТ 10533-86 [2] => 46Н ) [5] => Array ( [0] => Биметаллическая лента [1] => ГОСТ 10533-86 [2] => 75ГНД ) ) На выходе требуется получить массивы со списком всех значений конкретного индекса. В данном случае 3 массива. Прошу помощи...
Я имел в виду, что массивы должны получаться такого формата: $array[0] = array( 'Наименование', 'Биметаллическая лента' ); $array[1] = array( 'ГОСТ 10533-86' ); $array[2] = array( '20НГ', '24НХ', '45НХ' ); То есть, индексы получаемого массива должны совпадать с индексами, которые есть в исходных.
@Yankovitz У вас же везде гост одинаковый ГОСТ 10533-86, получится пять параметров. Как у вас три получилось? Я к тому что где эти индексы то? Вы предлагаете решить такую задачу сейчас: есть 5 котят, все желтого цвета. Задача выберите трех котят весом больше 10 килограмм. Где детонатор???
Про гост я понимаю, это вопрос второстепенный. Например, у элемента за значением "Наименование" индекс - 0. Он идёт в array[0], у элемента со значением "ГОСТ 10533-86" индекс равен 1, а значит идёт в массив array[1] --- Добавлено --- Хорошо, нужно просто получить на выходе: Код (Text): $array[0] = array( 'Наименование', 'Биметаллическая лента', 'Биметаллическая лента', 'Биметаллическая лента', 'Биметаллическая лента' ); $array[1] = array( 'ГОСТ 10533-86', 'ГОСТ 10533-86', 'ГОСТ 10533-86', 'ГОСТ 10533-86', 'ГОСТ 10533-86' ); $array[2] = array( '20НГ', '24НХ', '45НХ', '46Н', '75ГНД' );
По вашей логике получается так: PHP: $array[0] = array( 'Наименование', 'Биметаллическая лента', 'Биметаллическая лента', 'Биметаллическая лента', 'Биметаллическая лента', 'Биметаллическая лента'); $array[1] = array( 'ГОСТ', 'ГОСТ 10533-86', 'ГОСТ 10533-86', 'ГОСТ 10533-86', 'ГОСТ 10533-86', 'ГОСТ 10533-86' ); $array[2] = array( '20НГ', '24НХ', '45НХ', '46Н', '75ГНД'); Это то что вам нужно? Не знаю зачем вам это, сейчас попробую.
У меня массив данных и нужно в табличку всё это организовать с фильтром и выпадающим списком. Именно на выпадающем списке застопорился.
Вот с этого и начинайте следующий раз не надо в никакой массив ничего пихать, я так понимаю вам нужен select c параметрами options?
Уже горячо. Дело в том, что заранее неизвестно, сколько будет колонок. Может добавляться ещё одна или две. Кроме того, последовательность колонок разнится.
@Yankovitz на скорую руку, в селекты свои вставте их: PHP: $test = [ ['Наименование','ГОСТ','Марка'], ['Биметаллическая лента', 'ГОСТ 10533-86', '20НГ'], ['Биметаллическая лента', 'ГОСТ 10533-86', '24НХ'], ['Биметаллическая лента', 'ГОСТ 10533-86', '45НХ'], ['Биметаллическая лента', 'ГОСТ 10533-86', '46Н'], ['Биметаллическая лента', 'ГОСТ 10533-86', '75ГНД'] ]; $a = ''; $b = ''; $c = ''; foreach ($test as $val) { if($key === 0){ $a .= '<option selected disabled>'.$val[0].'</option>'; $b .= '<option selected disabled>'.$val[1].'</option>'; $c .= '<option selected disabled>'.$val[2].'</option>'; }else{ $a .='<option >'.$val[0].'</option>'; $b .='<option >'.$val[1].'</option>'; $c .='<option >'.$val[2].'</option>'; } $result = [$a,$b,$c]; } foreach ($result as $val) { echo '<select>'.$val.'</select>'; }
PHP: ['Наименование','ГОСТ','Марка', ...еще ], Нулевой индекс использовать как основу над созданием контента.
Большое спасибо всем. Сделал так: Код (Text): $a = [ [ 'Наименование', 'ГОСТ', 'Марка' ], [ 'Биметаллическая лента', 'ГОСТ 10533-86', '20НГ' ], [ 'Биметаллическая лента', 'ГОСТ 10533-86', '24НХ' ], [ 'Биметаллическая лента', 'ГОСТ 10533-86', '45НХ' ], [ 'Биметаллическая лента', 'ГОСТ 10533-86', '46Н' ], [ 'Биметаллическая лента', 'ГОСТ 10533-86', '75ГНД' ], ]; foreach ( $a as $i => $v ) { $array[$i] = array_unique( array_column( $a, $i ) ); } А селекты, уже дело техники.