Я не могу заставить array_find() возвращать требуемое значениеPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Я не могу заставить array_find() возвращать требуемое значение

Сообщение Anonymous »

Я пишу функцию, в которой пытаюсь получить некоторую конфигурацию из вызова API. Идентификатор конкретной конфигурации берется из строки запроса с именем id. Пользователь может иметь разные конфигурации, поэтому идентификатор используется для получения конкретной конфигурации. Токен для вызова API хранится в файле cookie с именем token.
Кажется, что с самим вызовом API все работает нормально, но у меня возникли проблемы с получением нужного результата. Я использую array_find, чтобы найти правильную конфигурацию на основе идентификатора. Мне нужна только часть настроек массива, связанная с указанным идентификатором. Я не уверен, почему он не возвращает данных, но подозреваю, что это связано с некоторыми проблемами времени, связанными с вызовом API или чем-то еще, но надеюсь, что кто-нибудь сможет обнаружить проблему здесь.
Вот как выглядит массив, который я получаю от вызова API:
Array (
[conf] => Array (
[0] => Array (
[id] => 123
[configuration] => Array (
[title] => Settings 1
[settings] => Array (
[color] => blue
[size] => 800
)
)
)
)

А вот мой PHP-код:
$id = sanitize_text_field($_REQUEST['id']);
$data = json_decode($response, true);
print_r($data); // This one prints the whole array
$userConf = [];
array_find($data, function($conf) use ($id) {
if ($conf[0]['id'] === $id) {
$userConf = $conf[0]['configuration']['settings'];

$config = array(
'color' => sanitize_text_field($userConf['color'] ?? ''),
'size' => sanitize_text_field($userConf['size'] ?? '')
);

print_r($config); // This prints the correct part of the array
}
});
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»