在PHP中搜索字符串格式数组中的数字?
我的数组如下所示:在PHP中搜索字符串格式数组中的数字?,php,arrays,Php,Arrays,我的数组如下所示: array( '0|500|0.50', '501|1000|0.75' ); 我正在尝试运行搜索以获取具有搜索值的密钥 我使用此函数搜索: function cu_array_search($str,$array){ foreach($array as $key => $value) { if(strstr($str,$value)) { return true; } else {
array( '0|500|0.50', '501|1000|0.75' );
我正在尝试运行搜索以获取具有搜索值的密钥
我使用此函数搜索:
function cu_array_search($str,$array){
foreach($array as $key => $value) {
if(strstr($str,$value)) {
return true;
} else {
return false;
}
}
}
并在检查时使用它:
if (cu_array_search(500,$array) {
但它永远不会返回true,尽管数组中的第一个键中存在500
如何解决这个问题
谢谢首先,
strstr
参数错误
其次,returnfalse
应该位于循环的末尾
第三,如果需要KEY,则需要使用return$KEY
而不是returntrue
function cu_array_search($str,$array){
foreach($array as $key => $value) {
if(strstr($value, $str)) {
return $key;
}
}
return false;
}
首先,
strstr
参数错误
其次,returnfalse
应该位于循环的末尾
第三,如果需要KEY,则需要使用return$KEY
而不是returntrue
function cu_array_search($str,$array){
foreach($array as $key => $value) {
if(strstr($value, $str)) {
return $key;
}
}
return false;
}
草垛是第一个论点,而不是第二个:
if(strstr($value,$str)) {
此外,strpos
在这方面速度更快,因此您应该使用:
function cu_array_search($str,$array){
foreach($array as $key => $value) {
if(strpos($value,$str) !== false) {
return $key;
} else {
return false;
}
}
}
草垛是第一个论点,而不是第二个:
if(strstr($value,$str)) {
此外,strpos
在这方面速度更快,因此您应该使用:
function cu_array_search($str,$array){
foreach($array as $key => $value) {
if(strpos($value,$str) !== false) {
return $key;
} else {
return false;
}
}
}
strpos
将使函数返回true,即使是0.5001
,但不是500
您应该将该值分解为|
,然后检查数组中的数字是否正确
function cu_array_search($num, $array){
return count(array_filter($array, function ($var) use ($num) {
return in_array($num, explode('|', $var));
})) > 0;
}
strpos
将使函数返回true,即使是0.5001
,但不是500
您应该将该值分解为|
,然后检查数组中的数字是否正确
function cu_array_search($num, $array){
return count(array_filter($array, function ($var) use ($num) {
return in_array($num, explode('|', $var));
})) > 0;
}
这个很好用
<?php
function cu_array_search($str, $array) {
foreach($array as $key => $value) {
$temp_array=explode('|', $value);
if (in_array($str, $temp_array))
return true;
}
return false;
}
$array = array( '0|500|0.50', '501|1000|0.75' );
if (cu_array_search(500, $array))
echo "success";
else
echo "failed" ;
?>
这很好用
<?php
function cu_array_search($str, $array) {
foreach($array as $key => $value) {
$temp_array=explode('|', $value);
if (in_array($str, $temp_array))
return true;
}
return false;
}
$array = array( '0|500|0.50', '501|1000|0.75' );
if (cu_array_search(500, $array))
echo "success";
else
echo "failed" ;
?>
@AhmedFouad您应该使用xdazz的解决方案,在某些情况下,字符串搜索可能会为您的场景检索到不正确的结果。@AhmedFouad您应该使用xdazz的解决方案,在某些情况下,字符串搜索可能会为您的场景检索到不正确的结果。