我需要一些帮助。我需要使用PHP和MySQL在用户输入数组中插入值。我在解释下面的表格。
db_images:
id image subcat_id
这里我需要在上面的表中插入以下json数组值。
$subcat=array(array("id"=>63),array("id"=>64));
$imageArr=array(array("image"=>"abc.png","id"=>63));
这里我需要匹配两个数组,如果$subcat
数组中的任何值存在于第二个(i.e-$imageArr
)数组中,那么相关图像将插入表中,如果不存在,则表示空白图像值将插入相应的subcat_id
。请帮忙。
答案 0 :(得分:1)
对于subcat
数组中的每个元素,您可以迭代imageArr
并检查id是否匹配(嵌套循环),如下所示:
foreach($subcat as $s) {
$flag = false;
foreach($imageArr as $i) {
if ($s['id'] == $i['id']) {
// insert ($i['image'], $s['id']) into db
$flag = true;
break;
}
}
if ($flag == false) {
// insert $s['id'] into db
}
}
答案 1 :(得分:0)
您好,您甚至可以在array_column
和in_array
的帮助下以下列方式进行操作,并减少循环。
<?php
$subcat=array(array("id"=>63),array("id"=>64));
$imageArr=array(array("image"=>"abc.png","id"=>63), array("image"=>"abc.png","id"=>65));
foreach($imageArr as $image){
/* array_column will do the job with in_array to search in the multi dimension array */
if(in_array($image['id'], array_column($subcat, 'id'))){
echo 'exists'. $image['id'].'<br>';
}else{
echo 'not exists'. $image['id'].'<br>';
}
}