在特定数组中查找字符串

时间:2014-10-07 08:07:47

标签: php arrays

我正在读取文件的内容并爆炸成数组 反转数组后,请帮助查找第一次出现的END并将所有数据存储到变量中。另外,请帮助第二次出现END。

function get(){

    $path="C:/xampp/htdocs/test/recentOrders.txt";
    if(!file_exists($path)){
        echo "Error";   
    }else {
        $summary= file_get_contents($path);

        $summaryarr = explode("\n", $summary);

        $summaryarrR=array_reverse($summaryarr);
        foreach($summaryarrR as $a){
        echo $a."<br>";
    }
    if (in_array('END', $summaryarrR)) {
        echo "Got mac";
    } else { echo "not found"; }

    $key=array_search('END', $summaryarrR); 
    var_dump($key);
}

文件内容如下:

END 07/10/2014 10:30:15
52970 10024
52970 10024
52970 10024
END 07/10/2014 10:50:36
52970 10025
52970 10025

2 个答案:

答案 0 :(得分:0)

我缩短了我的代码,只是包含了重要的部分,以便在这里得到结果。 这将循环遍历您的数组,并使用substr()来检查数组对象的前三个字母是否为“END”。如果匹配,它会将当前数组键添加到名为$ ends的新文件中。这将最终包含所有包含和END元素的数组键。要获得第一次出现,只需使用$ ends [0]:

$summary= file_get_contents($path);

$summaryarr = explode("\n", $summary);

$i=0;
$ends = array();
while( $i < count( $summaryarr ) ){
    echo $summaryarr[$i] . "<br>";
    if( substr( $a, 0, 3 ) == "END" ){
        $ends[] = $i;
    }
    $i++;
}

print_r( "ends occur on array keys: " . $ends );

答案 1 :(得分:-1)

从W3C复制

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");