Php 如何在不使用循环的情况下将一个数组拆分为两个不同的数组?

Php 如何在不使用循环的情况下将一个数组拆分为两个不同的数组?,php,arrays,laravel,Php,Arrays,Laravel,我有一个数组,其中包含如下所示的值 array:2 [▼ 0 => "11" 1 => "A_15" ] 如何将其拆分为2个阵列 //example array1 store 11 array2 store 15 我使用u作为指示来确定哪个数组应该存储哪个值 我试过的 $arr1 = array_filter($myArr, function($v) { return strpos($v, 'A_') === false; }); $arr2 = array_filter

我有一个数组,其中包含如下所示的值

array:2 [▼
  0 => "11"
  1 => "A_15"
]
如何将其拆分为2个阵列

//example
array1 store 11
array2 store 15
我使用u作为指示来确定哪个数组应该存储哪个值

我试过的

$arr1 = array_filter($myArr, function($v) { return strpos($v, 'A_') === false; });
$arr2 = array_filter($myArr, function($v) { return strpos($v, 'A_') !== false; });
如何通过删除A_uuu字体来存储该值


或者不使用循环的更好方法?

您可以执行以下操作:

$arr = ["A_15","11"];

sort($arr);                        //Sort the array, which means string starts with letters will go last (A_)
list($arr1, $arr2) = $arr;         //Assign the first element to $arr1, 2nd elemnt to $arr2

$arr2 = substr($arr2, 2);          //Remove the first 2 characters "A_"
这将导致:

$arr1 = 11
$arr2 = 15

Doc:,

您还可以使用.splice()方法根据情景逻辑进行拆分:

var array1=[11,15];
var array2=array1.splice(0,1);


在这两种情况下,array2将保留第一部分,array1将保留第二部分。

若要将值拆分为两个数组,可以使用with从值中删除
前缀,然后使用将数组分块为数组

$myArr = ['11', 'A_15'];
$myArr = array_chunk(array_map(function($x) { return ltrim($x, 'A_');}, $myArr), 1);
list($a1, $a2) = $myArr;
var_dump($a1);
var_dump($a2);

这将为您提供2个阵列:

array(1) {
  [0]=>
  string(2) "11"
}
array(1) {
  [0]=>
  string(2) "15"
}

这是一个看起来很时髦的数组。你试过
array\u slice
array\u filter
也是一种循环。
array(1) {
  [0]=>
  string(2) "11"
}
array(1) {
  [0]=>
  string(2) "15"
}