так я считываю JSON, преобразовать его в массив и я получил этот результат:граф вхождений значения внутри многомерного массива
Array
(
[Sid] => 23888555
[pages] => Array
(
[0] => Array
(
[id] => 13111071
[name] => Page 1
[slots] => Array
(
[0] => Array
(
[SlotId] => 6
[info] => Array
(
[id] => 5247
[color] => red
)
)
[1] => Array
(
[SlotId] => 4
[info] => Array
(
[id] => 5267
[color] => blue
)
)
[2] => Array
(
[SlotId] => 7
[info] => Array
(
[id] => 5267
[color] => green
)
)
)
)
[1] => Array
(
[id] => 13111072
[name] => Page 2
[slots] => Array
(
[0] => Array
(
[SlotId] => 6
[info] => Array
(
[id] => 5247
[color] => red
)
)
[1] => Array
(
[SlotId] => 4
[info] => Array
(
[id] => 5267
[color] => blue
)
)
)
)
)
)
У меня нет никаких проблем с чтением его вообще, то, что я хочу сделать, это подсчет для на каждой странице сколько подобных «последних» идентификаторов я получил.
Exemple:
[pages][0][slots][0][info][id]
[pages][0][slots][1][info][id]
[pages][0][slots][3][info][id]
Для страницы 1, я хочу сравнить эти 3 идентификаторов между ними и подсчетом вхождений.
[pages][1][slots][0][info][id]
[pages][1][slots][1][info][id]
Для страницы 2, я хочу сравнить эти 2 идентификатора между ними и подсчитать случаи.
Выход я хочу выглядеть следующим образом:
page 1 -> 1x5247
-> 2x5267
page 2 -> 1x5247
-> 1x5267
EDIT:
Я попытался с помощью
foreach ($data['pages'] as $item) {
foreach ($item['slots'] as $slotnumber => $value) {
print_r(array_count_values($item['slots'][$slotnumber]['info']));
}
}
который возвращает мне это:
Array ([5247] => 1 [red] => 1)
Array ([5267] => 1 [blue] => 1)
Array ([5267] => 1 [green] => 1)
Так я думаю я могу быть в состоянии e это, но я не знаю, как это сделать.
Вы пробовали что-нибудь? – goat
Я попытался использовать array_count_values, то есть значения, которые я хочу сравнить, являются динамическими. Также, имея в виду первое значение, которое я получаю, а затем сравниваю его с остальными, проблема в том, что для каждой страницы она должна быть разной. – Reknawn
Вам понадобится использовать множество петель foreach. –