如何检查数组是否包含子串php

时间:2016-03-14 02:30:30

标签: php

我有一个如下所示的数组数组,我想检查[avs_id]是否包含子字符串“a_b_c”。如何在PHP中执行此操作?

  Array
            (
                [id] => 10003    
                [avs_id] => a_b_c_3248
            )

    Array
        (
            [id] => 10003    
            [avs_id] => d_e_f_3248
        )

4 个答案:

答案 0 :(得分:1)

您可以使用void kadane(int A[], int N, int& bestStart, int& bestEnd, int& bestSum) { int max_ending_here = 0; int max_so_far = 0; bestStart = 0; for (int i = 0; i < N; i++) { max_ending_here += A[i]; if (max_ending_here < 0) { max_ending_here = 0; } if (max_ending_here > max_so_far) { max_so_far = max_ending_here; bestEnd = i; } } }

array_filter()

eval.in demo

结果保持原始键,因此您可以直接检索匹配子字符串的项目。

如果您只想检查子字符串是否存在,或者是否包含子字符串的项目数,请使用:

$src = 'a_b_c';

$result = array_filter
(
    $array,
    function( $row ) use( $src )
    {
        return (strpos( $row['avs_id'], $src ) !== False);
    }
);     

答案 1 :(得分:0)

循环遍历数组并使用strpos测试数组特定元素中的字符串,如下面的示例代码所示。

foreach($yourMainArray as $arrayItem){
    if (strpos($arrayItem['avs_id'], 'a_b_c') !== false) {
        echo 'true';
    }
}

答案 2 :(得分:0)

循环可能更理想,但是如果你知道字符串所在的数组索引:

$arr = array('id'=>'10003', 'avs_id'=>'a_b_c_3248');

if (strpos($arr['avs_id'], 'a_b_c') !== false) {
    echo 'string is in avs_id';
}

答案 3 :(得分:0)

您可以使用:

foreach($yourArray as $arrayItem){
    if (strpos($arrayItem['avs_id'], 'a_b_c') !== false) {
        //return true : code here
    }
}