[英]How to split an array in many part and adding a new key (cakephp 2.5)
經過研究,我仍在尋找解決方案。
我在控制器中得到了這個數組,我想作為下面的結果分開。 這意味着在uid引用中添加一個鍵。
謝謝
原始數組:
array(
'team_id-43' => '1',
'view-43' => '1',
'edit-43' => '1',
'timesheet-43' => '1',
'holiday-43' => '0',
'author-43' => '12',
'team_id-44' => '1',
'view-44' => '0',
'edit-44' => '1',
'timesheet-44' => '0',
'holiday-44' => '0',
'author-44' => '12'
)
想要的結果:
$uid43 = array(
'team_id' => '1',
'user_id' => 43
'view' => '1',
'edit' => '1',
'timesheet' => '1',
'holiday' => '0',
'author' => '43',
);
$uid44 = array(
'team_id' => '1',
'user_id' => 44
'view' => '1',
'edit' => '1',
'timesheet' => '1',
'holiday' => '0',
'author' => '43',
);
以下代碼將轉換您想要的2個數組中的數組(此處稱為$test
)
foreach ($test as $key => $value) {
$keyIndex = explode('-', $key);
$keyIndex = $keyIndex[count($keyIndex) - 1];
if (is_numeric($keyIndex)) {
$newKey = str_replace('-' . $keyIndex, '', $key);
$arrayName = 'uid' . $keyIndex;
if (!isset($$arrayName)) {
$$arrayName = array();
}
${$arrayName}["$newKey"] = $value;
}
}
print_r($uid43);
print_r($uid44);
建議您使用preg_match()
。 例:
$newArr = array();
foreach($arr as $key=>$val){
preg_match( '/-\d+/', $key, $matches);
$ind = trim($matches[0], '-');
if(is_numeric($ind)){
$px = str_replace($matches[0], '', $key);
$newArr['uid'.$ind][$px] = $val;
}
}
extract($newArr, EXTR_PREFIX_SAME, "wddx");
print '<pre>';
print_r($uid43);
print_r($uid44);
print '</pre>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.