簡體   English   中英

如何將數組拆分為多個部分並添加新鍵(cakephp 2.5)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM