元素在具有元素的Starting Character的数组中的位置

时间:2014-04-09 13:24:25

标签: php arrays

我想使用元素的起始字符找到元素的位置。示例如下

array(
   0=>"1-2",
   1=>"2-3"
   2=>"3-4"
   3=>"4-3"
)

这是我的阵列。在这个数组中我想找到以2-开头的元素的位置,如何用PHP找到,可以任何一个帮助。

5 个答案:

答案 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);