У меня есть этот 2d массив, который представляет исходящие ссылки каждой страницы, возвращаемой поисковой системой, теперь я должен найти количество входящих ссылок каждой страницы.
например, 1 присутствует в подмассиве в ключе 2, 3, 4, 5, 6, поэтому его количество входящих будет 5.
Мне нужно это в PHP.
$links = array(
1 => array(2,3,4,5,6),
2 => array(1,3,4,5,6),
3 => array(1,2,4,5,6),
4 => array(1,2,3,5,6),
5 => array(1,2,3,4,6),
6 => array(1,2,3,4,5),
7=> array (11),
8=>array(7,9),
9=> array(7),
10=> array(8),
11=> array(8,10),
);
возможно, более чистый способ, но один из способов — создать новый массив, перебрать существующий массив и добавить в новый массив, используя значение в качестве ключа.
$results=array();
foreach($links as $link){
foreach($link as $value){
$results[$value] = isset($results[$value]) ? $results[$value]+1 : 1;
}
}
с вашими примерами ваши результаты будут выглядеть так:
Array (
[1] => 5
[2] => 5
[3] => 5
[4] => 5
[5] => 5
[6] => 5
[7] => 2
[8] => 2
[9] => 1
[10] => 1
[11] => 1
)
Других решений пока нет …