我想使用元素的起始字符找到元素的位置。示例如下
array(
0=>"1-2",
1=>"2-3"
2=>"3-4"
3=>"4-3"
)
这是我的阵列。在这个数组中我想找到以2-开头的元素的位置,如何用PHP找到,可以任何一个帮助。
答案 0 :(得分:1)
如果你想找到一个以特定字符开头的字符串,这将是我的方法:
<?php
$find = '2-';
$array = array(0=>"1-2", 1=>"2-3", 2=>"3-4", 3=>"4-3");
$position = NULL;
foreach($array as $key=>$val){
if( substr($val,0,strlen($find)) == $find ){
$position = $key;
break;
}
}
echo $position;
我在strlen
中使用substr()
来允许任何字符串。
答案 1 :(得分:1)
试试:
$input = array(
0 => "1-2",
1 => "2-3",
2 => "3-4",
3 => "4-3",
);
$search = '2-';
$index = -1;
foreach ($input as $key => $value) {
if (strpos($value, $search) === 0) {
$index = $key;
break;
}
}
答案 2 :(得分:1)
$input = array('1-2', '2-3', '3-4', '4-3');
$search = '2-';
var_dump(preg_grep("/^{$search}/", $input));
答案 3 :(得分:0)
更通用的方法是:
$input = array('1-2', '2-3', '3-4', '4-3');
$search = '2-';
$results = array_filter(
$input,
function ($item) use ($search) {
return strpos($item, $search) === 0;
}
);
// $results will contain an array of all strings that match.
答案 4 :(得分:0)
$needle = '2-';
$result = array_filter(
$myArray,
function($value) use ($needle) {
return fnmatch($needle.'*', $value);
}
);
var_dump($result);