Как считать элементы в массиве, который находится в массиве? - PullRequest
1 голос
/ 01 ноября 2019

Как вы считаете элементы в массиве, который является частью массива? Я использую плагин Advance Custom Fields в WordPress, и мой вывод массива print_r(get_field('irl_today_entry')) выглядит следующим образом:

Array
(
[0] => Array
    (
        [acf_fc_layout] => irl_today_website_entry
        [irl_today_website] => Array
            (
                [0] => Array
                    ( data removed)

                [1] => Array
                    ( data removed )
            )
    )
[1] => Array
    (
        [acf_fc_layout] => irl_today_social_entry
        [irl_today_social] => Array
            (
                [0] => Array
                    ( data remove )
                [1] => Array
                    ( data remove)
            )
    )
)

Как вы считаете только элементы в [irl_today_social]? Я перепробовал много вариантов, которые не работают.

Ответы [ 5 ]

1 голос
/ 01 ноября 2019

Если у вас есть несколько записей с irl_today_social, вы также можете использовать массив_карт и массив_колонок

$res = array_map(function($x) {
    return count($x);
}, array_column($arrays, "irl_today_social"));

print_r($res);

Выход

Array
(
    [0] => 2
)

См. php demo

1 голос
/ 01 ноября 2019

Вы можете использовать array_reduce,

array_reduce(get_field('irl_today_entry'),function($a,$b){
    return count($a["irl_today_website"]) + count($b["irl_today_website"]);
});
0 голосов
/ 01 ноября 2019

согласно моему пониманию просто попробуйте это

echo count($your_array[1]['irl_today_social']);
0 голосов
/ 01 ноября 2019

Просто вы можете использовать функцию " Count "

Вот решение:

Шаг 1: Сначала получите элементы массива ['irl_today_entry'].
Шаг 2 Затем подсчитайте ваши ['irl_today_social'] предметы.

Пример:

foreach(get_field('irl_today_entry') as $entry){
   $socialData = count(entry['irl_today_social']);
}

Спасибо

0 голосов
/ 01 ноября 2019

Переберите ваш массив, получите count нужного вам индекса и добавьте его к счетчику.

 $count = 0;
 foreach(get_field('irl_today_entry') as $entry){
   $count = $count + count(entry['irl_today_social']);
 }
...