php检查数组中的特定值
我试图创建一个函数,该函数能够检查数组中的某个值,如果该值存在,则返回索引的值 我有以下查询db并将结果放入数组的代码,但当我将该数组传递到函数中时,由于某种原因不会返回任何结果 谁能帮我一下吗php检查数组中的特定值,php,arrays,Php,Arrays,我试图创建一个函数,该函数能够检查数组中的某个值,如果该值存在,则返回索引的值 我有以下查询db并将结果放入数组的代码,但当我将该数组传递到函数中时,由于某种原因不会返回任何结果 谁能帮我一下吗 $conn = mysql_connect($host, $user, $pass); $conn = mysql_select_db($db, $conn); $sql="SELECT DATE_FORMAT(due_date,'%d') AS day,short,tid
$conn = mysql_connect($host, $user, $pass);
$conn = mysql_select_db($db, $conn);
$sql="SELECT DATE_FORMAT(due_date,'%d') AS day,short,tid FROM tasks WHERE due_date BETWEEN '2014-8-01' AND '2014-8-31'";
$result=mysql_query($sql);
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++)
{
$events[] = mysql_fetch_assoc($result);
}
var_dump($events);
echo "Check Array results is " . checkArray("15", $events);
function checkArray($day, &$arr){
$key = array_search($day, $arr);
echo "the key is ". $key;
return $key;
}
如果数组不止一个维度,则需要对数组进行递归搜索
array(2) {
[0]=> array(3) {
["day"]=> string(2) "15"
["short"]=> string(6) "test 1"
["tid"]=> string(1) "1"
}
[1]=> array(3) {
["day"]=> string(2) "31"
["short"]=> string(6) "test 2"
["tid"]=> string(1) "2"
}
}
<?php
function recursive_array_search($needle,$haystack) {
foreach($haystack as $key=>$value) {
$current_key=$key;
if($needle===$value OR (is_array($value) &&
recursive_array_search($needle,$value) !== false)) {
return $current_key;
}
}
return false;
}
?>
数组(2){
[0]=>数组(3){
[“日”]=>字符串(2)“15”
[“short”]=>字符串(6)“测试1”
[“tid”]=>字符串(1)“1”
}
[1] =>数组(3){
[“日”]=>字符串(2)“31”
[“short”]=>字符串(6)“测试2”
[“tid”]=>字符串(1)“2”
}
}
这是我从中获取的。您可以将其用于函数checkArray(),如果找不到日期,它将返回第一个匹配的键或false
function checkArray($day, $array){
foreach ($array as $key => $value)
{
if (array_search($day, $value))
return $key;
}
return false;
};
但是,为什么不在SQL中添加
day='15'
为什么不在MySQL语句中检查日期,为什么要执行这个额外步骤?您有一个数组。您需要循环使用它们来获取具有相应值的键。您不能直接在SQL请求中添加WHERE day=[yourValue]
吗?我需要获取这些日期之间的所有数据,这是为了一个运行良好的日历应用程序。谢谢,我在SQL中不这样做,因为我需要在该月内保存所有日期,我只是用了15个来测试,实际上我有一个循环,它贯穿了所有的时间
function checkArray($day, $array){
foreach ($array as $key => $value)
{
if (array_search($day, $value))
return $key;
}
return false;
};