Привет. Дано два ассоциативных массива. Первый из них содержит ключ, который передается в переменной $num. Как сделать unset для этого ключа не только в первом, но и во втором массиве, учитывая, что ключ во втором массиве другой? Код (Text): <?php $num = 1; $entity = [ 1 => "изготовление%20буклетов", 2 => "изготовление%20листовок", ]; $product = [ "fa fa-book" => "Буклеты", "fa fa-paper-plane" => "Листовки", ]; //unset ?
В переменной $num у Вас не хранится ключ ко второму массиву. Если воспринимать значение как порядковый номер элемента - возможно Вам поможет функция array_splice P.S.: если у Вас имеется связь между этими элементами - попробуйте ее описать для начала устно, а код для этого уже можно будет подобрать.
@Razorfen, например: PHP: $num = 1; $entity = [ 1 => "изготовление%20буклетов", 2 => "изготовление%20листовок", ]; $product = [ "fa fa-book" => "Буклеты", "fa fa-paper-plane" => "Листовки", ]; var_dump($entity, $product); $ak1[1] = array_keys($entity); $ak1[2] = array_keys($product); $k = array_search($num, $ak1[1]); if(isset($entity[$num])) { unset($entity[$num]);} if($k !== false && isset($product[$ak1[2][$k]])) { unset($product[$ak1[2][$k]]);} var_dump($entity, $product); --- Добавлено --- Если действительно порядок элементов в массивах соблюдается
Спасибо. Передается get-параметр $num. Он мржет принимать значения 1, 2 и 3. Код выглядит следующим образом. Код (Text): <?php $campaing_entity = [ 1 => "изготовление буклетов", 2 => "изготовление листовок", 3 => "изготовление календарей", ]; $product = [ "fa fa-book" => "Буклеты", "fa fa-paper-plane" => "Листовки", "fa fa-calendar" => "Календари", ]; $mi = new MultipleIterator(); $mi->attachIterator(new ArrayIterator($campaing_entity)); $mi->attachIterator(new ArrayIterator($product)); foreach($mi as $k=>$i){ echo "<a href=\"&utm_term=$i[0]\" class=\"pointer item\">". "<i class=\"$k[1] fa-2x\" aria-hidden=\"true\"></i>". "<br><br>$i[1]</a>\n"; } Пытаюсь сделать так, чтобы при соответствии $num ключу массива, этот ключ массива был удален. http://sandbox.onlinephpfunctions.com/code/4671835921bffea57cef30d0c4809cb0aaca1640
@Razorfen, что-то мне подсказывает, что в данном случае можно просто использовать двумерный массив: PHP: $campaing_entity = [ 1 => [ "изготовление буклетов", "fa fa-book", "Буклеты" ], 2 => [ "изготовление листовок", "fa fa-paper-plane", "Листовки" ], 3 => [ "изготовление календарей", "fa fa-calendar", "Календари" ] ]; Вы ведь с MultipleIterator практически такой же создаете, только имя класса извлекаете из ключа
@Razorfen, или так (вставка между 17-й и 18-й строчками): PHP: if($num == $k[0]) { unset($campaing_entity[$k[0]]); unset($product[$k[1]]); continue; }