Имеется данная JSON строка:
{"header":{"user_id":"27355","account_type":"1"},"results":[{"header":{"similarity":"96.45","index_id":5,"index_name":"Index #5"},"data":{"title":"\u30a8\u30f3\u5b50\u3061\u3083\u3093","id":74692665,"member_name":"\u2739\u3046\u306b\u30e2\u30f3\u2739","member_id":2173572}},{"header":{"similarity":"94.4","index_id":30,"index_name":"Index #9"},"data":{"id":3505976,"gel_id":4732753,"creator":"katuo1129","material":"original","characters":"","source":""}}]}
Так же имеется подобие скрипта:
$sau_global = json_decode(file_get_contents(__DIR__."/json.json"));
$text = $sau_global->results[0]->header->index_name;
switch(preg_match('#\#(.*?)\:#', $text, $match)){
case "{$match[1]}" == "25":
echo "Gel";
break;
case "{$match[1]}" == "9":
echo "Dan";
break;
case "{$match[1]}" == "5":
echo "Pi";
break;
}
Мне нужно что бы проверялся JSON-файл и если находит в index_name
, например Index #5
он выдавал результат "Pi". Но если там есть несколько index_name
(с разными индексами соответственно) то он бы выдавал бы не только "Pi" но и "Gel" с "Dan".
PS. Попытка №2
$sau_global = json_decode(file_get_contents(__DIR__."/json.json"));
$x = 0;
while($x <= 2){
while($result = $sau_global->results){
switch(preg_match('#\#(.*?)\:#', $result[$x]->header->index_name, $match)){
case $match[1] == "5":
echo "Pixiv<br><br>";
break;
case $match[1] == "9":
echo "Danbooru<br><br>";
break;
case $match[1] == "25":
echo "Gelbooru<br><br>";
break;
}
$x++;
break;
}}
Вроде все работает, но он выдает так:
Pixiv
Danbooru
Pixiv
Как подправить его так что бы он не выдавал третий вариант (Pixiv) если его нет в JSON?
// Заранее определяем индексы
// и значения для вывода.
$indexes = [
'Index #5' => 'Pi',
'Index #9' => 'Dan',
'Index #25' => 'Gel',
];
// Получаем содержимое файла.
$jsonString = file_get_contents('json.json');
// Декодируем json строку.
$sau_global = json_decode($jsonString);
// Перебираем результаты `results`.
foreach ($sau_global->results as $key => $result) {
// Если существует поле `index_name`
// и оно не пустое.
if (!empty($result->header->index_name)) {
// Выводим его значение.
echo $indexes[$result->header->index_name], '<br><br>';
// Пред выводом можно было бы
// добавить различные проверки.
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть одномерный массив $arr, каждый элемент которого содержит текстЭтот текст может включать, а может не включать имена (Маша, Саша, Дима, Катя,...
В авито или в каких-то магазинах есть фильтры поиска или фильтры заказа товаранапример в Авито если выбрать Транспорт выводятся колонки...
Есть числа с 0 по 23Как сделать так, что бы при нажатии на кнопку генерировалось случайное число, которое не встречалось еще как минимум 2 раза?