簡體   English   中英

從另一個數組中將新的pair key => value添加到數組中

[英]Add new pair key => value into array from another array

我已經嘗試過array_merge ,根據類似的鍵, array_push ,各種[]組合合並它們,但我只是想不出這個。 我有兩個數組,一個看起來像:

Array
(
    [650] => Array
        (
            [Kampan] => 
            [ZelvaUL] => 650
            [ZelvaOV] => 
            [OCS] => 
            [Rezim] => Ruční
        )

    [651] => Array
        (
            [Kampan] => 3003C_DSL_upsell_TV_SU
            [ZelvaUL] => 651
            [ZelvaOV] => 
            [OCS] => 21
            [Rezim] => IN
        )

    [652] => Array
        (
            [Kampan] => 
            [ZelvaUL] => 652
            [ZelvaOV] => 
            [OCS] => 22
            [Rezim] => IN
        )

並且,我想為650,651,652 ...子陣列中的每一個添加一個新密鑰(我將稱為密鑰'Barva'),以及來自另一個陣列(總共10個)的短值集以定期循環該鍵下的每個子數組,使第1和第11個值相同,第2個和第12個相同,依此類推,並且都在同一個鍵下。 它看起來像:

Array
(
    [650] => Array
        (
            [Kampan] => 
            [ZelvaUL] => 650
            [ZelvaOV] => 
            [OCS] => 
            [Rezim] => Ruční
            [Barva] => 1
        )

    [651] => Array
        (
            [Kampan] => 3003C_DSL_upsell_TV_SU
            [ZelvaUL] => 651
            [ZelvaOV] => 
            [OCS] => 21
            [Rezim] => IN
            [Barva] => 2
        )

    [652] => Array
        (
            [Kampan] => 
            [ZelvaUL] => 652
            [ZelvaOV] => 
            [OCS] => 22
            [Rezim] => IN
            [Barva] => 3
        )

...

    [660] => Array
        (
            [Kampan] => ...
            [ZelvaUL] => ...
            [ZelvaOV] => ...
            [OCS] => ...
            [Rezim] => ...
            [Barva] => 1
        )

說真的,我沒有想法......感謝任何幫助。

編輯:這是我要添加的數組:

$camp_barvy = array(
  'background-color:#ffffff;color:#111111;',
  'background-color:#ffcc02;color:#111111;',
  'background-color:#ff7700;color:#ffffff;',
  'background-color:#ff2323;color:#ffffff;',
  'background-color:#ff00aa;color:#ffffff;',
  'background-color:#aa44ff;color:#ffffff;',
  'background-color:#1188ff;color:#ffffff;',
  'background-color:#11ddff;color:#111111;',
  'background-color:#00dd77;color:#111111;',
  'background-color:#119911;color:#ffffff;'
);

我想做一些大而廣泛的條件格式化以及javascript和php如果語句使加載太慢,所以我想我將使數組的格式部分我已經查找了基於我選擇所需格式的值。 真的,它是最好的選擇:)

你想要做的是迭代“輸入”數組中的每個值,並在其中插入一個從“數據”數組中取出的新值(你提到的那10個值)。 當您的數據數組耗盡時,您希望循環回其開始並繼續在“input”數組元素中插入值。

所以你想要這樣的東西:

foreach ($input as &$row) {
    $row['Brava'] = $next_item_from_data_array;
}

這就留下了如何輕松迭代和循環數據數組的問題。

一種方便而現代的方法是使用內置的SPL迭代器 :數據數組的ArrayIterator和圍繞它的InfiniteIterator ,以便您根據需要自動循環回啟動。 這樣,您也不必假設您的數據數組(例如,如果它是數字索引或不是)。

例如:

$dataIterator = new InfiniteIterator(new ArrayIterator($data));
$dataIterator->rewind();
foreach ($input as &$row) {
    $row['Brava'] = $dataIterator->current();
    $dataIterator->next();
}

// After iterating by reference (&$row) it is always a good idea to unset
// the reference so that you don't reuse it later on by mistake -- although
// this is not required and the program will work correctly without it.
unset($row);

看到它在行動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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