如何将数组切成两个

时间:2016-12-19 03:20:22

标签: php arrays

我正在尝试将数组分成两个独立的数组。例如,如果我有这样的数组

Array([0]=>Hello[1]=>I'm[2]=>Cam)

我想将其拆分为两个数组并添加另一个字符串

Array1([0]=>Hello[1]=>There,)
Array2([0]=>I'm[1]=>Cam)

然后最后将两者加在一起

Array([0]=>Hello[1]=>There,[2]=>I'm[3]=>Cam)

最简单的方法是什么? 我知道我可以使用数组合并将两者放在一起,但我不知道如何在某一点上将它们分开。

我也是在一个不断变大的大文件上做这个,所以我不能使用array_chunk()

3 个答案:

答案 0 :(得分:1)

查看您的最终结果目标,我认为使用array_splice可以使用$arrayVarOriginal = array('Hello', 'Im', 'Cam'); $arrayVarExtra = array('There'); array_splice($arrayVarOriginal, 1, 0, $arrayVarExtra); 更短的方法来插入数组的中间....

Array([0]=>Hello[1]=>There,[2]=>Im[3]=>Cam)

这会让你回复$arrayVarOriginal = array('Hello', 'Im', 'Cam'); $array1stPart = array(arrayVarOriginal[0], 'There'); $array2ndPart = array_shift($array1stPart); $finalArray = array_merge($array1stPart, $array2ndPart); ,就像你想要的那样!

以上内容避免了必须拆分数组。

<强>无论其

如果你确实想要这么做,那就是你的意思......

array_shift

如何? $array2ndPart删除了任何数组中的第一项,因此我们可以更轻松地获取$array1stPart ....和$arrayVarOriginal,因为我们可以手动构建一个全新的数组并将其取出来自array_shift的第一个项目位于第0位,并将'There'添加为我们自己的新职位1。

希望有帮助:)

array_splicearray_merge<?php if (strpos($fields->field, 'qsl_') !== false){ $question = DB::table('cs_question')->join('api_field', 'api_field.field', '=', 'cs_question.question_id') ->where('cs_question.question_id', $fields->field )->get(); foreach ($question as $questions) $questionnya = $questions->question; }else{ $questionnya = 'empty question'; } ?> 是您需要了解的内容。

答案 1 :(得分:0)

根据您的问题,这里一步一步地得到您想要的最终输出。

1)拆分数组

$arr = array('Hello', 'I\'m', 'Cam');
$slice = count($arr) - 1;

$arr1 = array_slice($arr, 0, -$slice);
$arr2 = array_slice($arr,1);

所以,您在此处获得了两个新数组$arr1$arr2

2)添加新字符串

$arr1[] = "There";

3)最后,组合数组

$arr = array_merge($arr1, $arr2)

此处print_r $arr

时的示例输出
Array
(
    [0] => Hello
    [1] => There
    [2] => I'm
    [3] => Cam
)

答案 2 :(得分:0)

array_slice第二个参数是您要拆分的位置。因此,您可以通过计算数组长度来动态执行此操作。

$string = array("Hello","I'm","Cam");

$firstArray = array_slice($string ,0,1);
array_push($firstArray,"There,");
$secondArray =  array_slice($string ,1,2);
echo "<pre>";
print_r($firstArray);


echo "==========="."<pre>";
print_r($secondArray);

echo "<pre>";
print_r(array_merge($firstArray,$secondArray));

//out put
Array
(
    [0] => Hello
    [1] => There,
)
===========

Array
(
    [0] => I'm
    [1] => Cam
)

Array
(
    [0] => Hello
    [1] => There,
    [2] => I'm
    [3] => Cam
)

希望它能满足您的要求。如果没有,或者您需要更多指定,您可以澄清您的需求。