【发布时间】:2021-02-23 10:18:21
【问题描述】:
我在使用 ajax 和 PHP 构建表单时遇到了多维数组。 我的 ajax 向 php 发送一个多维数组。我想将此数组转换为一维数组。
所以考虑这段代码:
$reasons = $_POST['reasons'];
var_dump($reasons);
哪个输出这个:
array(1) {
[0]=>
array(2) {
["id"]=>
string(2) "37"
["reason"]=>
string(9) "Something"
}
}
我现在希望它是这样的:
$reasons = {
37 => "Something"
}
我该怎么做? 我已经搜索了几个小时,但没有找到合适的解决方案......
我尝试过的:
1)
function array_flatten($array) {
if (!is_array($array)) {
return FALSE;
}
$reasons = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$reasons = array_merge($reasons, array_flatten($value));
} else {
$reasons[$key] = $value;
}
}
return $reasons;
}
array_flatten($_POST['reasons']);
var_dump($reasons);
Output: NULL
$reasons = $_POST['reasons'];
$tabReasons = array_reduce($reasons, 'array_merge', array());
var_dump($tabReasons);
输出这个:
array(2) {
["id"]=>
string(2) "37"
["reason"]=>
string(9) "Parce que"
}
哪种工作,但我的多维数组可以存储多个 ID 和原因。发生这种情况时,上面的代码只返回一对键和值
如果我的多维中有两个 id 和两个原因,它只会将我最后一个 id 和原因返回到一个数组中......
我想要类似:array(id => reason, id => reason, etc...)
【问题讨论】:
-
我已经搜索了几个小时,但没有找到合适的解决方案...请发布您的代码,您尝试了什么?
-
我用我尝试过的所有内容编辑了代码,并进一步解释了我想要做什么