невозможно сосчитать значения первых массивов при попытке подсчета нескольких массивов

В WordPress происходит следующее.

// get the current page author

$curauth    = (isset($_GET['author_name'])) ? get_user_by('slug',
$author_name) : get_userdata(intval($author));

// get the current page authors id (in this case its 2)

$author_id  = $curauth->ID;

// set the $args to get the value of the users meta_key named 'followers'

$args = array(
'meta_key'     => 'followers',
);

// setup the get_users() query to use the $args

$users  = get_users($args);

// setup a foreach loop to loop through all the users we just queried getting the value of each users 'followers' field

foreach ($users as $user) {

// $user->folllowers returns:
// 2
// 1,3,5
// 3,4,5
// 3,5,1,4
// 3,4,5,1
// 1,2
// which is a series of comma separated strings.
// so then i turn each string into an array:

$array = array($user->followers);

// go through each array and count the items that contain the authors id

for($i = 0; $i < count($array); $i++) {
$counts = array_count_values($array);
echo $counts[$author_id];
}

}

В результате я получаю значение «1», но оно должно быть «2», так как author_id в этом примере равно 2, и есть 2 строки, которые содержат 2 в них.

я чувствую, что это единственная проверка для author_id в первом массиве в серии массивов.

Вы можете помочь мне понять, что я делаю не так?

1

Решение

Изменить эту строку

 $array = array($user->followers);

в

 $array = explode(",", $user->followers);

Потому что говорят, что у вас есть $followers ="3,4,5,1"; Затем:

$array = array($followers);
print_r($array);

Output:
Array
(
[0] => 3,4,5,1
)$array = explode(",", $followers);
print_r($array);

Output:
Array
(
[0] => 3
[1] => 4
[2] => 5
[3] => 1
)
1

Другие решения

Других решений пока нет …