Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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_解码循环仅通过唯一_Php_Json - Fatal编程技术网

php json_解码循环仅通过唯一

php json_解码循环仅通过唯一,php,json,Php,Json,我将此json格式的数据作为字符串接收到我的php代码中: $json_str = {{ "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"John" , "lastName":"Doe" } } 这是一个循环: $emp = $_POST["emp"]; //this is the json str $emp_arr = jso

我将此json格式的数据作为字符串接收到我的php代码中:

  $json_str = {{ "firstName":"John" , "lastName":"Doe" }, 
{ "firstName":"Anna" , "lastName":"Smith" }, 
{ "firstName":"John" , "lastName":"Doe" }
}   
这是一个循环:

$emp = $_POST["emp"]; //this is the json str
$emp_arr = json_decode($emp);
foreach($emp_arr as $item) { //foreach element in $arr 
       $fname= $item->firstName; //etc 
       $lname= $item->lastName; //etc 
      //saving to DB line
    }
在使用:json_decode($json_str)将其转换为php数组之后,我循环遍历它并将这些值写入数据库。 问题是,它只写了一次“约翰·多伊”。是否有什么东西可以防止这种循环中出现重复值,或者我应该以不同的方式对其进行解码? 我需要在数据库中使用此值两次


谢谢。

请检查您的json对象。此代码适用于:

$json\u str='1〕[
{“firstName”:“John”,“lastName”:“Doe”},
{“姓氏”:“安娜”,“姓氏”:“史密斯”},
{“名字”:“约翰”,“姓氏”:“多伊”}
] ';
$emp\u arr=json\u decode($json\u str);
foreach($emp_arr作为$item){//foreach元素在$arr中
echo$fname=$item->firstName;//等
echo$lname=$item->lastName;//等
//保存到数据库行
}

请参阅。

您的
json
无效

尝试使用此
json
字符串

    <?php
$json_str = '[{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" }, 
{ "firstName":"John" , "lastName":"Doe" }]';   

$array = json_decode($json_str, true);
echo "<pre>";
print_r($array);
echo "</pre>";

 for($i=0;$i<count($array);$i++)
 {
   $name=$array[$i]['firstName']." ".$array[$i]['lastName'];
   $sql="INSERT INTO yourTable (nameField) VALUES ('$name')";
   //DB Query
 }
?>

请显示您得到的解码结果!有太多的可能性,没有显示您的代码,我们无法帮助。能否显示您的
迭代
插入
?只需在插入之前测试数据库中是否存在该值
$json\u str
的值在您的示例中不是字符串。其实没什么。您发布的代码是无效的PHP,因此我们对此没有什么可说的。即使它是一个字符串(不知何故),它也是无效的JSON。如果您想提供更多信息,请回答您的问题。