如何从foreach中的数组中跳过Key和value?

时间:2016-07-21 06:38:16

标签: php multidimensional-array

我在PHP数组

中设置起点很困难

PHP代码

for($k=0; $k<count($AddClmn); $k++){
            $ord = 0;
            foreach($AddClmn[$k] as $ky=>$vl){
                $clmns[] = array('head'=>$ky, 'src'=>$vl, 'typ'=>'datatyp', 'NEMERIC'=>'', 'wdth'=>'70', 'ord'=>$ord);
                $ord++;
            }
        }
file_put_contents('Tracing.txt', print_r($clmns, true));

我的实际输出高于PHP代码

Array
(
[0] => Array
    (
        [head] => locid
        [src] => 1
        [typ] => datatyp
        [NEMERIC] => 
        [wdth] => 70
        [ord] => 0
    )

[1] => Array
    (
        [head] => hhs
        [src] => 2525252
        [typ] => datatyp
        [NEMERIC] => 
        [wdth] => 70
        [ord] => 1
    )

[2] => Array
    (
        [head] => LA0
        [src] => 9831808.388559164
        [typ] => datatyp
        [NEMERIC] => 
        [wdth] => 70
        [ord] => 2
    )
)

在上面的结果我想跳过前两个数组,我想要第3个数组作为索引0的开始。如何设置指针或任何方式来面对这种情况?我除了结果

[0] => Array
    (
        [head] => LA0
        [src] => 9831808.388559164
        [typ] => datatyp
        [NEMERIC] => 
        [wdth] => 70
        [ord] => 2
    )

[1] => Array
    (
        [head] => LA1
        [src] => 12920638.804462105
        [typ] => datatyp
        [NEMERIC] => 
        [wdth] => 70
        [ord] => 3
    )

如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

for($k=2; $k<count($AddClmn); $k++){
            $ord = 0;
            foreach($AddClmn[$k] as $ky=>$vl){
                $clmns[] = array('head'=>$ky, 'src'=>$vl, 'typ'=>'datatyp', 'NEMERIC'=>'', 'wdth'=>'70', 'ord'=>$ord);
                $ord++;
            }
        }
file_put_contents('Tracing.txt', print_r($clmns, true));

使用此代码..

答案 1 :(得分:1)

//你有一个这样的数组

$data = array(
    '0' => 'Hello',   //you want to skip this

    '1' => 'Hello1', //you want to skip this

    '2' => 'Hello2',
    );   

 $skipped = array('0', '1');

    foreach($data as $key => $value){
        if(in_array($key, $skipped)){
            continue;
        }
        //do your stuf
    }

答案 2 :(得分:1)

我认为你需要这个 -

foreach($AddClmn[$k] as $ky=>$vl){
  if(substr( $ky, 0, 2 ) === "LA") {
    //your code
  }
} // end for loop

答案 3 :(得分:1)

//以下几行将从前两个索引中删除值。

    unset($array[0]);
    unset($array[1]);

//这一行将重新设置索引(新数组将设置为&#39; 0&#39;索引)

$array = array_values($array);

//以下行将显示数组的新内容

 print_r($array);

答案 4 :(得分:0)

使用 PHP&gt; = 5.3 使用此函数将数组展平(也就是删除一个“图层”)一级:

function flatten(array $array) {
    $return = array();
    array_walk_recursive($array, function($a) use (&$return) { $return[] =     $a; });
    return $return;
}