如何从foreach PHP获得第一个非空过滤值?

时间:2017-03-13 01:22:51

标签: php foreach

我有一个数组,然后我过滤了值,结果为null / empty。

如何确定非空的第一个过滤值?

<?php

$items = array('a1a','bb2','o3e','two','three');

$i=0;

foreach($items as $item) {

    $item = str_replace('a1a','',$item); //filter remove
    $item = str_replace('bb2','',$item); //filter remove
    $item = str_replace('o3e','',$item); //filter remove

    //ITRY THIS BUT NOT WORK IF THE SECOND AND THIRD IS EMPTY/NULL TOO
    if($i==0) {
        if(empty($item)){
            //skip
        } else {
            //STATUS PUBLISH
        }

    } else { 
        //STATUS ATTACHMENT
    }

$i++;           
}

1 个答案:

答案 0 :(得分:0)

  

如何从foreach PHP获取第一个非空的过滤值?

如果我理解正确,您希望他们的数组$items中的第一个项目尚未被str_replace清空。

如果这是正确的,以下是如何继续:

<?php
$items = array('a1a','bb2','o3e','two','three');

$first = true;
foreach($items as $item) {
    $itemOriginal = $item;
    $item = str_replace(['a1a', 'bb2', 'o3e'] ,'',$item); //filter remove

    if(!empty($item) && $first == true){
        $first = false;
        echo "status publish -> ".$itemOriginal."\n";
    } else {
        echo "skip -> ".$itemOriginal."\n";
    }
}

这将输出:

skip -> a1a
skip -> bb2
skip -> o3e
status publish -> two
skip -> three

如果这不是您想要的,请澄清您的问题并添加评论,以便我再次查看。

<强>更新

  

可以重视'三'不跳过?所以我想使用来自值foreach的php进行wordpress发布。第一个值'two'作为发布,'three'作为附件

<?php
$items = array('a1a','bb2','o3e','two','three');

$first = true;
foreach($items as $item) {
    $itemOriginal = $item;
    $item = str_replace(['a1a', 'bb2', 'o3e'] ,'',$item); //filter remove

    if(!empty($item) && $first == true){
        $first = false;
        echo "status publish -> ".$itemOriginal."\n";
    } elseif(!empty($item)) {
        $first = false;
        echo "status attachment -> ".$itemOriginal."\n";
    } else {
        echo "skip -> ".$itemOriginal."\n";
    }
}

将输出:

skip -> a1a
skip -> bb2
skip -> o3e
status publish -> two
status attachment -> three