Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-JSON数组可以';t返回与没有索引的名称关联的值_Php_Arrays_Json - Fatal编程技术网

PHP-JSON数组可以';t返回与没有索引的名称关联的值

PHP-JSON数组可以';t返回与没有索引的名称关联的值,php,arrays,json,Php,Arrays,Json,我有一个json数组,如下所示: [{"name":"title_one","value":"something"},{"name":"title_two","value":"something 2"},{"name":"title_three","value":"something three"}] $configfile = '[{"name":"title_one","value":"something"},{"name":"title_two","value":"something

我有一个json数组,如下所示:

[{"name":"title_one","value":"something"},{"name":"title_two","value":"something 2"},{"name":"title_three","value":"something three"}]
$configfile  = '[{"name":"title_one","value":"something"},{"name":"title_two","value":"something 2"},{"name":"title_three","value":"something three"}]';
$configarray = json_decode($configfile, true);
$configarray = array_combine(array_column($configarray, 'name'), array_column($configarray, 'value'));

$valueone   = $configarray['title_one'];
$valuetwo   = $configarray['title_two'];
$valuethree = $configarray['title_three'];
我可以像这样获取数组和访问值:

$configarray = json_decode($configfile, true);


$valueone = $configarray[0]['value'];
$valuetwo = $configarray[1]['value'];
$valuethree = $configarray[2]['value'];
但在这个json中,我在不同的时间会有不同的对(因此顺序也不同),所以我想通过获取它们的关联名称来访问这些值,我尝试了以下方面的变化:

 $valueone = $configarray['title_one']['value'];
 $valuetwo = $configarray['title_two']['value'];
 $valuethree = $configarray['title_three']['value'];

但它失败了,并告诉我我有一个未定义的索引。如何通过对中的名称访问这些值?

$configarray的输出为

排列 ( [0]=>stdClass对象 ( [名称]=>标题\u一 [价值]=>什么 )

)

这就是你过不去的原因

 $valueone = $configarray['title_one']['value'];
 $valuetwo = $configarray['title_two']['value'];
 $valuethree = $configarray['title_three']['value'];
使用foreach可以将值分配给新变量

foreach($config as $conf){
   echo $conf->value; echo "</br>";
}
foreach($config as$conf){
echo$conf->value;echo“
”; }
假设每个json对象内部只有两个属性,可以执行以下操作:

[{"name":"title_one","value":"something"},{"name":"title_two","value":"something 2"},{"name":"title_three","value":"something three"}]
$configfile  = '[{"name":"title_one","value":"something"},{"name":"title_two","value":"something 2"},{"name":"title_three","value":"something three"}]';
$configarray = json_decode($configfile, true);
$configarray = array_combine(array_column($configarray, 'name'), array_column($configarray, 'value'));

$valueone   = $configarray['title_one'];
$valuetwo   = $configarray['title_two'];
$valuethree = $configarray['title_three'];

foreach()
loop?为此,您必须在
key=>value对中重新格式化数组,以使
title\u one
成为键,而
某物
成为相应的值。您知道如何做吗?这是在序列化表单并保存post数据后写入文件的方式…完成了,谢谢!!(以前从未使用过array_combine,非常有用)