#php #arrays #string
#php #массивы #строка
Вопрос:
В настоящее время я работаю над сравнением ключей из нескольких массивов, и количество массивов может варьироваться, но мне бы хотелось, чтобы это было полностью автоматическим.
Я пытался преобразовать нужный мне массив в строку в цикле for, а затем использовать строку в array_intersect_key, но я не могу заставить это работать.
Мой входной код (не уверен, что там делает оператор «if», но эта часть точно работает)
$arr = array();
foreach($_POST as $key=>$value){
if($key == "load" || strpos("id",$key) !== false){
continue;
}
$data = file_get_contents('http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=C5DF6B05C9770667C1E3138EE69A8301amp;steamid='.$value.'amp;format=json');
$json = json_decode($data, TRUE);
array_push($arr,$json);
}
И моя проблема где-то здесь
$r = "";
for($n=0;count($arr) != $n;$n ){
$r.= '$arr['.$n.']["response"]["games"],';
}
$r = substr($r, 0, -1);
$r = array_intersect_key($r);
print_r($r);
Я бы хотел, чтобы это было что-то вроде
$r = array_intersect_key($arr[0]["response"]["games"],$arr[1]["response"]["games"],$arr[2]["response"]["games"]);
с возможностью быть бесконечным (вот почему цикл существует), но вместо этого я получаю ошибку
«Предупреждение: array_intersect_key(): требуется как минимум 2 параметра, 1 из которых указан в URL в строке 39″.
Если кто-нибудь знает, как я могу это сделать, возможно, другим способом, я был бы очень признателен за помощь
Я бы хотел, чтобы конечным результатом был массив со всеми соответствующими ключами.
Комментарии:
1. Я обновил код своими входными данными, но поскольку он скопирован только из моего источника (я немного занят), конкретного ввода нет, но пример можно найти на api.steampowered.com/IPlayerService/GetOwnedGames/v0001 /…
Ответ №1:
Вы должны сделать вот так.
$r = "";
for($n=0;count($arr) != $n;$n ){
$r[$n]['response']['games'] = $arr[$n];
$allowed[] = $n;
}
$r1 = array_intersect_key($r, array_flip($allowed));
echo '<pre>';
print_r($r1);
echo '</pre>';
Комментарии:
1. Ehm… Эта «предварительная» вещь была довольно умной, спасибо. Но что ж, остальное не совсем работает, теперь оно просто печатает (на данный момент) 3 массива, которые у меня есть, как массив 0-2, но я бы хотел, чтобы он стал единым массивом, содержащим соответствующие ключи