如何从对象创建可用数组
How to create a usable array from object
我有一个 JSON 数组从 Joomla 中的数据库查询返回,使用 loadRow()。
我们将自定义字段用于一些精美的页面内容。
我需要这条记录中的 text/value 对,在不同的可用数组中。
我已经尝试过爆炸,array_map,许多不同的操作,但我正在努力寻找正确的代码组合。
这就是对象的样子。
Array ( [0] =>
{"options":
{"options0":
{"name":"soph","value":"School of Public Health"},
"options1":
{"name":"son","value":"School of Nursing"},
"options2":
{"name":"sohp","value":"School of Health Professions"}
}
}
)
我需要的,更像是这样的:
Array (
[0] => {"name":"soph","value":"School of Public Health"},
[1] => {"name":"son","value":"School of Nursing"},
[2] => {"name":"sohp","value":"School of Health Professions"}
)
您似乎将其作为 JSON 数据存储在数据库中。这样的事情应该有效:
$row = json_decode($arr[0], true)['options'];
$optionList = [];
foreach($row as $option => $options)
{
array_push($optionList, [
'name' => $options['name'],
'value' => $options['value']
]);
}
将您的新数据放入 $optionList
。
你的问题对你的需求有点模糊。
我想那是因为你不知道该问什么问题。
如果我是你,我相信这就是我想要的。
解码数组并使用数组列来展平数组并生成 "name"、键和 "value" 值。
这样您就可以像下面代码中的回显行一样使用数组。
$collegeparams = '{"options":
{"options0":
{"name":"soph","value":"School of Public Health"},
"options1":
{"name":"son","value":"School of Nursing"},
"options2":
{"name":"sohp","value":"School of Health Professions"}
}
}';
$arr = array_column(json_decode($collegeparams[0], true)['options'], "value", "name");
var_dump($arr);
echo $arr['sohp'];
以上输出:
array(3) {
["soph"]=>
string(23) "School of Public Health"
["son"]=>
string(17) "School of Nursing"
["sohp"]=>
string(28) "School of Health Professions"
}
School of Health Professions
我有一个 JSON 数组从 Joomla 中的数据库查询返回,使用 loadRow()。
我们将自定义字段用于一些精美的页面内容。
我需要这条记录中的 text/value 对,在不同的可用数组中。
我已经尝试过爆炸,array_map,许多不同的操作,但我正在努力寻找正确的代码组合。
这就是对象的样子。
Array ( [0] =>
{"options":
{"options0":
{"name":"soph","value":"School of Public Health"},
"options1":
{"name":"son","value":"School of Nursing"},
"options2":
{"name":"sohp","value":"School of Health Professions"}
}
}
)
我需要的,更像是这样的:
Array (
[0] => {"name":"soph","value":"School of Public Health"},
[1] => {"name":"son","value":"School of Nursing"},
[2] => {"name":"sohp","value":"School of Health Professions"}
)
您似乎将其作为 JSON 数据存储在数据库中。这样的事情应该有效:
$row = json_decode($arr[0], true)['options'];
$optionList = [];
foreach($row as $option => $options)
{
array_push($optionList, [
'name' => $options['name'],
'value' => $options['value']
]);
}
将您的新数据放入 $optionList
。
你的问题对你的需求有点模糊。
我想那是因为你不知道该问什么问题。
如果我是你,我相信这就是我想要的。
解码数组并使用数组列来展平数组并生成 "name"、键和 "value" 值。
这样您就可以像下面代码中的回显行一样使用数组。
$collegeparams = '{"options":
{"options0":
{"name":"soph","value":"School of Public Health"},
"options1":
{"name":"son","value":"School of Nursing"},
"options2":
{"name":"sohp","value":"School of Health Professions"}
}
}';
$arr = array_column(json_decode($collegeparams[0], true)['options'], "value", "name");
var_dump($arr);
echo $arr['sohp'];
以上输出:
array(3) {
["soph"]=>
string(23) "School of Public Health"
["son"]=>
string(17) "School of Nursing"
["sohp"]=>
string(28) "School of Health Professions"
}
School of Health Professions