2013-07-13 29 views
-1

你好,我有一個代碼片段的例子數組和問題是,我失去了陣列的關鍵。該陣列是一個多維之一,我已經在這裏發佈了一個樣本版本,因爲我在這兩個數組有很多它的鍵(太長,張貼)陣列在路上丟失一個鍵

$columns = array(
    "1" => array(
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
); 
$array = array(
    "1" => array(
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
    "foo" => "bar", 
    "bar" => "foo", 
), 
    "2" => array(
    "1" => "bar", 
    "2" => "foo", 
    "3" => "bar", 
    "4" => "foo", 
    "5" => "bar", 
    "6" => "foo", 
    "7" => "bar", 
    "8" => "foo", 
    "9" => "bar", 
    "10" => "foo", 
) 
); 

OK的,我有一個固定數量或鑰匙,並我想實現的是從第一個數組獲取值並將它們用作第二個數組中的鍵。到目前爲止這麼好,但是當我做第二個foreach從第一個獲取值並將它們作爲第二個鍵的方式時,我從$ array中釋放了我的密鑰(我認爲它被重寫了)。你能幫我解決這個問題嗎?因爲我沒有理由如何解決這個問題。

foreach($array as $key => $val) 
{ 
    array_splice($val, 66); 
    foreach($val as $k => $row) 
    { 
     if (isset($columns[$k])) 
     { 
      $info[$columns[$k]] = $row; 
     } 
    } 
    return $info; 
} 

更新:

什麼,我想在這裏實現了創建使用數組中的鍵,另一個用於值的數組。後來發現我可以用array_combine來完成它。解決我的問題

+0

如果你寫了[minimal example](http://sscce.org/),那麼更有可能有人可以幫助你。或者你甚至可以自己理解錯誤 – RiaD

回答

1

PHP不區分1和「1」作爲數組鍵。

因此,下面是相同的:

$array["1"] = $something; 
$array[1] = $something; 

它們都分配給第二元件在$array(可能重寫退出數據)。

+0

是的,而不是讓我在第二個數組中的兩個數組覆蓋第二個數組中的第二個數組,並且我從第二個數組中丟棄第一個數組(這是一個多維數組) – Bogdan

1

有一個更簡單的方法:使用array_flip函數。

+0

它會做這項工作,但我不想用鑰匙翻轉值,我想用第一個數組中的值作爲第二個數組中的鍵:D – Bogdan

+0

因此,'array_values'?你的問題並不能很好地解釋你想要做什麼;你需要一個更好的例子(比如,一個不會重複的例子)。 – duskwuff