Как подсчитать количество раз, когда объект с определенной парой значений ключа существует в массиве JSON, используя PHP

Я относительно новичок в PHP, я пытаюсь понять, как подсчитать количество раз, когда объект с определенной парой значений ключа (например, «имя»: «Джон Амос») существует в массиве JSON, используя PHP и повторяя его. Ниже приведены мои данные JSON.

{
    "main": {
        "request": "40"
    },
    "data": {
        "page": 1,
        "posts": [
            {
                "id": "1",
                "name": "John Amos",
                "used_id": "A001",
                "info": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam"
            
            },
            {
                "id": "2",
                "name": "Ugon Charles",
                "used_id": "A007",
                "info": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam"
            
            },
            {
                "id": "3",
                "name": "Mary Ann",
                "used_id": "A004",
                "info": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam"
            
            },
            {
                "id": "4",
                "name": "Mary Ann",
                "used_id": "A004",
                "info": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam"
            
            },
            {
                "id": "5",
                "name": "John Amos",
                "used_id": "A001",
                "info": "Sed ut perspiciatis unde omnis iste"
            
            },
            {
                "id": "6",
                "name": "John Amos",
                "used_id": "A001",
                "info": "Ut enim ad minima veniam"
            
            }
            
            
        ]
    }
}

Я пробовал что-то вроде этого;

$uid_counts = array_count_values($data['data']['posts']);
$username = $uid_counts['John Amos'];
echo $uid_counts;

Пожалуйста, опубликуйте код того, что вы уже пробовали.

brombeer 10.04.2022 14:52

Используйте array_count_values вместе с array_column($data['data']['posts'], 'name'). array_count_values ​​не работает с элементами массива, которые являются массивами. То, что вы пробовали выше, должно было вызвать предупреждение.

Markus AO 10.04.2022 15:05
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
1
2
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

попробуй это

function countPost(array $arr,$key,$val){
  $count=0;
  foreach($arr as $ar){
    if($ar[$key]==$val){
       $count++;
     }
  }
  return $count;
}

$uid_counts = countPost($data['data']['posts'],'name','John Amos');
echo $uid_counts;

я не тестировал код, но вы поняли мою идею. попробуй, это должно решить твою проблему

Другие вопросы по теме