2014-01-06 37 views
0

我有一個數組稱爲$request如下:如何將數組鍵作爲另一個數組鍵的值以及如何在PHP中從它們創建新的數組?

Array 
(
    [op] => edit 
    [contact_label] => 1 
    [80] => on 
    [79] => on 
    [76] => on 
    [74] => on 
    [73] => on 
) 

現在我要實現的是兩件事情如下:

  1. 創建有一個新的簡單數組名$enquiries其中將包含所有數字(來自上面的數組的鍵),即73,74,76,79和80

  2. 在該陣列中創建一個名爲[enquiries]的新密鑰,該密鑰將包含上述所有數字。同時用$ request數組中的數字刪除當前鍵。

任何人都可以在這方面幫助我嗎?

回答

1

試試這個Fiddle

<?php 
$request = array('op' => 'edit' 
       ,'contact_label' => 1 
       ,80 => 'on' 
       ,79 => 'on' 
       ,76 => 'on' 
       ,74 => 'on' 
       ,73 => 'on' 
); 



$enquiries = array(); 
foreach($request as $key => $value) { 
    if(is_numeric($key)) { 
     $enquiries[] = $key; 
     unset($request[$key]); 
    } 
} 

$request['enquiries'] = $enquiries; 

echo "<pre>"; 
print_r($request); 
?> 

輸出

Array 
(
    [op] =&gt; edit 
    [contact_label] =&gt; 1 
    [enquiries] =&gt; Array 
     (
      [0] =&gt; 80 
      [1] =&gt; 79 
      [2] =&gt; 76 
      [3] =&gt; 74 
      [4] =&gt; 73 
     ) 

) 
-1

您可以使用array_keys()將一個數組的密鑰存儲到另一個數組中。

那麼你可以做的鍵存儲您的原始數組中會是這樣的:

$request_keys = array_filter(array_keys($request), function($k){ return is_int($k); }); 
$request['enquiries'] = $request_keys; 

$request = array_filter($request, function($k){ return !is_int($k); }); 

編輯:過濾數字僅用於查詢索引鍵也從$請求刪除數組中的數字鍵過程結束後。

1
$enquiries = array(); 
foreach($request as $key => $value) { 
    if(is_numeric($key) { 
     $enquiries[] = $key; 
     unset($request[$key]); 
    } 
} 

$request['enquiries'] = $enquiries; 
1
$array = array('op' => 'edit' 
       ,'contact_label' => 1 
       ,80 => 'on' 
       ,79 => 'on' 
       ,76 => 'on' 
       ,74 => 'on' 
       ,73 => 'on' 
); 

foreach($array as $key => $value) { 
    if (is_numeric($key)) { 
     $array['enquiries'][] = $key; 
     unset($array[$key]); 
    } 
} 

輸出:

Array 
(
    [op] => edit 
    [contact_label] => 1 
    [enquiries] => Array 
     (
      [0] => 80 
      [1] => 79 
      [2] => 76 
      [3] => 74 
      [4] => 73 
     ) 

) 
+0

我理解這個問題的方式,OP仍然希望數組中的數字。可能會誤解。 – Ryan

+1

Thanx。我誤解了這一點。 – Peon

0
<?php 
$enquiries = array(); 
foreach($request as $key => $val) { 
    if (is_numeric($key)) { 
     array_push($enquiries, $key); 
     unset($request[$key]); 
    } 
} 
$enquiries['enquiries'] = $enquiries; 
相關問題