我有下面的数组:-
Array
(
[adate] =>
[ip_address] =>
[atime] =>
[self_fname] => hjhbhj
[self_mi_nm] => bjb
[self_last_nm] => bb
[self_preferred_nm] => bbjhb
[patient_is1] => 1
[party_fname] => tgn
[party_mname] =>
[party_lname] => gn
[party_str1] =>
[party_apt1] =>
[party_city1] =>
[pt_str1] =>
[pt_apt1] =>
[pt_city1] =>
[pt_state1] =>
[pt_zip1] =>
)
我想把这个数组分成两个数组,分别是"party_"和的"pt_" 有人帮我解决这个问题吗?Array
(
[party_fname] => tgn
[party_mname] =>
[party_lname] => gn
[party_str1] =>
[party_apt1] =>
[party_city1] =>
)
Array
(
[pt_str1] =>
[pt_apt1] =>
[pt_city1] =>
[pt_state1] =>
[pt_zip1] =>
)
您可以使用foreach和strpos来获得所需的结果。
$arr = ORIGINAL DATA;
$arr1 = $arr2 = array();
foreach($arr as $key=>$value){
if(strpos($key, 'party_') === 0){
$arr1[$key] = $value;
}
else if(strpos($key, 'pt_') === 0){
$arr2[$key] = $value;
}
}
这将输出两个数组,其中arr1的所有数据都以"party_"开头,arr2的所有键都以"pt_"开头。
阅读本手册:http://php.net/manual/en/function.array-slice.php
如果您将原始数组称为$arrayMain
,则代码为:
$arrayParty = array_slice($arrayMain, 8, 6, true);
和
$arrayPt = array_slice($arrayMain, 14, 5, true);