Я использую оператор сокращения строк PHP для подсчета количества раз, когда определенный идентификатор встречается в многомерном массиве: $source['tally'] = array(); foreach ($items as $item) { $source['tally'][$item->getId()] += 1; } При первом обращении к новому id он устанавливает значение «tally» равным 1, а затем увеличивает его каждый раз, когда он будет найден после этого. Код работает […]
У меня есть целый ряд недель, недель и недель после даты, даты открытия и закрытия. По какой-то причине, когда цикл foreach достигает конечной даты, он выводит массив последней недели вместо окончательной даты. Вот начало массива: $dates = Array ( [0] => Array ( [0] => Array ( [0] => "Mon 23rd June" [1] => "9:00am" […]
У меня есть xml-файл с разными именованными узлами и многоуровневыми дочерними узлами (которые различаются между каждым узлом.) Как мне получить доступ к данным? Будет ли это требовать много вложенных циклов? Вот пример кода xml: <start_info> <info tabindex="1"> <infonumber>1</infonumber> <trees>green</trees> </info> </start_info> <people> <pe> <people_ages> <range number="1"> <age value="1">1</age> <age value="2">2</age> </range> </people_ages> </pe> </people> Вот […]
У меня есть функция preg_match_all: preg_match_all('#<h2>(.*?)</h2>#is', $source, $output, PREG_SET_ORDER); Он работает так, как планировалось, но проблема в том, что он preg_matches все элементы дважды и в огромный многомерный массив, как это, например, где он, как и предполагалось, preg_matched все 11 элементов, но два раза и в многомерный массив: Array ( [0] => Array ( [0] […]
Я петлю через массив, который у меня есть, используя цикл foreach. Однако в цикле foreach мне нужно изменить массив, чтобы он напрямую влиял на мой цикл foreach. Поэтому я приведу пример моей проблемы: <?php $array = ["Red", "Yellow", "Blue", "Orange"]; foreach($array as $color) { if(($key = array_search("Blue", $array)) !== false) unset($array[$key]); echo $color . "<br>"; […]
его описание выглядит так: persistence(39) == 3 // because 3*9 = 27, 2*7 = 14, 1*4=4 // and 4 has only one digit persistence(999) == 4 // because 9*9*9 = 729, 7*2*9 = 126, // 1*2*6 = 12, and finally 1*2 = 2 persistence(4) == 0 // because 4 is already a one-digit number Я […]
Если у меня есть класс, который реализует интерфейс Iterator , я могу вручную контролировать, как итерация в цикле foreach . Но существуют ли другие способы, с помощью которых мой объект может вести себя как массив? Например, допустим, у меня есть Guestbook класса, которая реализует Iterator , так что я могу перебирать foreach (new Guestbook() as […]