У меня есть многомерный массив с парой значений ключа, поэтому я хочу перевернуть, т.е. ключ попадает в место значения, а значения попадают в место ключа, но я получаю сообщение об ошибке
Мой код Php:
echo '<pre>',print_r($res),'</pre>';
вывод, когда print_r($res):
Array
(
[0] => Array
(
[userid] => 1
)
[1] => Array
(
[userid] => 2
)
[2] => Array
(
[userid] => 3
)
)
получение ошибки на выходе, когда вы хотите перевернуть этот массив:
array_flip(): Can only flip STRING and INTEGER values!
Как это решить?
@Nick Ник, я хочу перевернуть, означает, что значение массива должно занять свое ключевое место, а ключ измениться на позицию значения.
Можете ли вы показать в своем вопросе, что вы ожидаете в качестве вывода, это может быть довольно просто, но, как уже указывалось, на данный момент это неясно.
array_flip() не переворачивает массив как значения. array_flip() может переворачивать только строковые и целочисленные значения.
Это проблема XY? Я не вижу никакой выгоды в переворачивании этих глубоких данных.






Вы можете попробовать следующий способ
$arr = [
[ 'userid' => 1, ],
[ 'userid' => 2, ],
[ 'userid' => 3, ]
];
array_walk($arr, function(&$val) { $val = array_flip($val); });
array_flip() не переворачивает массив как значения. array_flip() может переворачивать только строковые и целочисленные значения.
Вы можете попробовать это:
$arr = [
[ 'userid' => 1 ],
[ 'userid' => 2 ],
[ 'userid' => 3 ]
];
foreach($arr as $a){
$flipped[] = array_flip($a);
}
print_r($flipped);
Вы пытаетесь перевернуть многомерный массив, где каждое значение является массивом, но согласно документам array_flip:
Note that the values of array need to be valid keys, i.e. they need to be either integer or string. A warning will be emitted if a value has the wrong type, and the key/value pair in question will not be included in the result.
Вы можете использовать массив_карта для использования array_flip для каждой записи:
$a = [
["userid" => 1],
["userid" => 2],
["userid" => 3],
];
$a = array_map("array_flip", $a);
print_r($a);
Результат
Array
(
[0] => Array
(
[1] => userid
)
[1] => Array
(
[2] => userid
)
[2] => Array
(
[3] => userid
)
)
См. демонстрация php
спасибо за ваше драгоценное время, которое решило мою проблему.
Какого результата вы пытаетесь достичь?