Поместите определенный элемент в последний цикл в php foreach - PullRequest
0 голосов
/ 05 июня 2019

Я хочу поместить определенный элемент массива в последний цикл в цикле 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;

Ответы [ 2 ]

1 голос
/ 05 июня 2019
<?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/>';
}


?>
0 голосов
/ 05 июня 2019

Вы можете использовать:

$new_array = array_unique(array_merge($sbk,$sbl));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...