将数组拆分为已知项目的两个数组

时间:2015-09-14 16:27:46

标签: php arrays

我有一个像这样的数组

$a=["apple","ball","cat","dog","elephant","fish"]

我想从数组$ a创建一个这样的两个新数组。我希望狗之前的东西留在$ b,我想要物品狗大象和鱼在另一个阵列$ c

$b=["apple","ball","cat"]

$c=["dog","elephant","fish"]

我想通过使用word" dog"不使用价值4。可能吗 ? 我搜索了许多阵列功能,但我的大脑停止了工作。那么有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以使用array_searcharray_splicearray_reverse功能来完成此任务:

$a = array("apple","ball","cat","dog","elephant","fish");

$lastItems = array_slice( $a, array_search( 'dog', $a ) );
$firstItems = array_reverse( array_slice( array_reverse( $a ), array_search( 'dog', $a ) ) );

可能还有一种更简单的方法。但是使用array_reverse方法反转数组将帮助您在array_search元素之前切片,而不使用反向切片。

另请注意,我更改了数组初始化。

答案 1 :(得分:0)

如果您对 array_search 功能没问题,那么它很简单。请参阅以下方法:

$arr   = array("apple","ball","cat", "deer", "frog",  "dog","elephant","fish");
$res   = array_chunk($arr, array_search('dog', $arr));
$first = $res[0]; $last  = $res[1];
print_r($first);
print_r($last);


$last = array_splice($arr, array_search('dog', $arr));
print_r($arr);
print_r($last);