Я относительно новичок в 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;
Используйте array_count_values
вместе с array_column($data['data']['posts'], 'name')
. array_count_values не работает с элементами массива, которые являются массивами. То, что вы пробовали выше, должно было вызвать предупреждение.
попробуй это
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;
я не тестировал код, но вы поняли мою идею. попробуй, это должно решить твою проблему
Пожалуйста, опубликуйте код того, что вы уже пробовали.