Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将特定项放在php foreach中的最后一个循环中_Php_Arrays_Foreach - Fatal编程技术网

将特定项放在php foreach中的最后一个循环中

将特定项放在php foreach中的最后一个循环中,php,arrays,foreach,Php,Arrays,Foreach,我想在foreach循环的最后一个循环中放置一个特定的数组元素 我确实尝试了以下代码,但我希望有一种更有效的方法来操作数组 $sbk = ['LT','MT','KT','GT']; $sbl = ['LT','MT','GT']; $numItems = count($sbk); $i = 0; foreach($sbk as $rm){ if(in_array($rm, $sbl)){ echo $rm."\n"; } if(!in_array($rm, $s

我想在foreach循环的最后一个循环中放置一个特定的数组元素

我确实尝试了以下代码,但我希望有一种更有效的方法来操作数组

$sbk = ['LT','MT','KT','GT'];
$sbl = ['LT','MT','GT'];
$numItems = count($sbk);
$i = 0;
foreach($sbk as $rm){
   if(in_array($rm, $sbl)){
       echo $rm."\n";
   }
   if(!in_array($rm, $sbl)){
       $extra = $rm;
   }
   if( ++$i === $numItems) {
       echo $extra."\n";
   }
}
这是我的预期输出:

LT
MT
GT
KT
我希望解决方案处于if-else条件下

foreach($sbk as $rm):
   if(in_array($rm, $sbl)){
      //print LT MT GT
   } else {
     //make this the end of the foreach loop. 
     //since the item is not in the in_array, it should be here at the last loop.
   }
endforeach;
您可以使用:

$new_array = array_unique(array_merge($sbk,$sbl));


这不会将“KT”元素放在最后一个循环中。这与最后一个循环无关。您希望获得
$sbk
$sbl
的值的交点。我说的对吗?或者你想让不寻常的元素移到最后?@vivek_23,我想在最后一个循环中打印“KT”。如果我想存储它而不是直接打印它,我的解决方案将不起作用。是,我希望不常见的元素进入最后一个循环。请尝试使用
$sbl
而不是
$sbk
进行foreach,因为我想全部打印它们,所以无法使用。我想把一个元素移到最后一个。。
<?php


$sbk = ['LT','MT','KT','GT'];
$sbl = ['LT','MT','GT'];

//Get the differece of sbk and sbl array. you will get the output KT in array.
$result=array_diff($sbk,$sbl);

//Merge the array result and sbl
$final_array = array_merge($sbl,$result);


//fatch the array value
foreach($final_array as $final_arrays){
    echo $final_arrays .'<br/>';
}


?>