我可以检查数组中的值吗?
我的意思是如果我有这样的阵列
$image=array(
1 =>$_FILES['image1']['name'],
2 =>$_FILES['image2']['name'],
3 =>$_FILES['image3']['name'],
4 =>$_FILES['image4']['name'],
5 =>$_FILES['image5']['name'],
6 =>$_FILES['image6']['name'],
);
我想知道具有图像名称的键是什么,我想根据数组键号更新mysql表的某些列,这些列具有图像名称。
我还想编写一个sql查询来执行此操作。 (这是我想要的一个例子。我知道这个查询是错误的)
$query="
UPDATE mytablename
foreach($image as $valeu){
echo'$image(1)=$value';
echo'$image(2)=$value';
echo'$image(3)=$value';
echo'$image(4)=$value';
echo'$image(5)=$value';
echo'$image(6)=$value';
}
";
答案 0 :(得分:4)
array_search
是你的朋友:
$key = array_search($image_name, $image);
http://www.php.net/manual/en/function.array-search.php
如果您对数组执行某些操作,请阅读array functions。
列表答案 1 :(得分:2)
从外观上看,如果数组中存在一个键,它会附加一个图像吗?
对于查询,您可以使用内爆来获取文件的名称,如下所示:
$query="
update myTableName
set someValue=1
where imageName in (".implode($image).")";
或者如果你需要获取数组键,那么你可能必须首先进行循环:
$IDArray=array();
foreach($image as $key => $val)
{
$IDArray[]=$key;
}
$query="
update myTableName
set someValue=1
where imageID in (".implode($IDArray).")";
答案 2 :(得分:2)
你可以这样做,
foreach($image as $key=>$imgInfo)
{
if(isset($imgInfo['name']))
{
$validKeys = $key.',';
}
}
$validKeys = rtrim($validKeys,',');
答案 3 :(得分:0)
我按自己的方式做到了这一点。
$image=array(
1 =>$_FILES['image1']['name'],
2 =>$_FILES['image2']['name'],
3 =>$_FILES['image3']['name'],
4 =>$_FILES['image4']['name'],
5 =>$_FILES['image5']['name'],
6 =>$_FILES['image6']['name'],
);
$i=1;
$sql = "UPDATE salehotel ";
$sql .="SET"." ";
foreach($image as $value){
if(!$value==""){
$sql .= "`image".$i."`"."="."'". $value ."'".",". " ";
$i++;
}
}
$sql .="
`name`='$name',
`status`='$status',
`type`='$type',
`location`='$location',
`price`='$price',
`description`='$description'
WHERE
`property_id`='$edit'
";
这是一种非常简单的方法,但它完成了我的工作。谢谢大家