2016-06-28 2 views
-2

Я хочу разделить массив на два на основе значения.Разделить массив на два по значению

Например

Array(
    [25] => Korea Strawberry (Pkt) 250g 
    [26] => *8887187338308 
    [27] => PROM Mix [email protected] 
    [28] => 19.90*2 38.90 Z 
    [29] => 0.45*2 
    [30] => 
    [31] => 
    [32] => Total with GST @ 6% 
    [33] => Rounding 
    [34] => Total 
    [35] => Tender 
    [36] => Master 0003 App: 807946 
    [37] => Change 
    [38] => GST Analysis Goods Tax Amount 
    [39] => S = 6% 
    [40] => Item 3 
    [41] => Qty 4 
    [42] => Total Saving 9.44 
    [43] => 56.94 
) 

Я хочу, чтобы это было в двух частях. Все значения, оставшиеся до Total with GST @ 6%, вторые все остальные значения.

Как это сделать. Я пробовал array_diff() и другие методы, но не работал так, как хочу.

+1

Посмотрите на 'array_search()' и 'array_slice()' – Rizier123

+0

@Kapil Sharma, вы хотите сохранить ключи или результирующий массив может быть повторно проиндексирован? – RomanPerekhrest

ответ

1

Вы можете получить номер ключа для Total with GST @ 6%, используя array_search, затем разделите массив на 2 контура.

$array = Array(
    [25] => Korea Strawberry (Pkt) 250g 
    [26] => *8887187338308 
    [27] => PROM Mix [email protected] 
    [28] => 19.90*2 38.90 Z 
    [29] => 0.45*2 
    [30] => 
    [31] => 
    [32] => Total with GST @ 6% 
    [33] => Rounding 
    [34] => Total 
    [35] => Tender 
    [36] => Master 0003 App: 807946 
    [37] => Change 
    [38] => GST Analysis Goods Tax Amount 
    [39] => S = 6% 
    [40] => Item 3 
    [41] => Qty 4 
    [42] => Total Saving 9.44 
    [43] => 56.94 
); 

$value = 'Total with GST @ 6%'; //This can be dynamically filled 
$split = array_search($value, $array) 

for($i=0; $i<$split; $i++) { 
    $newArray1[] = $array[$i]; 
} 
for($i=$split; $i<count($array); $i++) { 
    $newArray2[] = $array[$i]; 
} 
unset($array); //Now it's split we can unset the $array variable 
0

Вы ищете array_slice.

Просто будьте осторожны при использовании его на ассоциативных массивах или массивах с произвольными числовыми ключами.

Смежные вопросы