2011-05-19 71 views
0

我需要這樣一個數組:PHP - 困難陣列工作動態創建

array('quadra_id'=>$quadra_id); 

這筆交易,我會動態地創建它,根據是什麼形式發送。

$where = array(); 

if($quadra_id != 0) { 
    array_push($where, $quadra_id); 
} 

它返回我:

array 
    0 => string '8762' (length=3) 

我需要這樣的:

array 
    'quadra_id' => string '8762' (length=3) 

回答

4

array_push增加了新的元素與數字索引數組,而你想要的是一個字符串索引。所以,你真的想這樣做:

$where['quadra_id'] = $quadra_id; 
+0

這一個工作得很好,謝謝=) – Gerep 2011-05-19 14:26:54

0

什麼你要找的是:

array_push($where, array('quadra_id'=>$quadra_id)); 

如果有隻打算成爲一個,你應該真的這麼做:

if($quadra_id != 0) {  
    $where = array('quadra_id'=>$quadra_id); 
} 
2

替換:

array_push($where, $quadra_id); 

有了:

$where['quadra_id'] = $quadra_id; 
+0

這一個工作得很好,謝謝=) – Gerep 2011-05-19 14:27:37

2

你只需要提供我會做這樣

$where = array(); 

if($quadra_id != 0) { 
    $where['quadra_id']= $quadra_id; 
} 
+0

這一個工作得很好,謝謝=) – Gerep 2011-05-19 14:27:13

+0

yw,高興地幫助 – mcgrailm 2011-05-19 14:28:11

2

替換此行的指數...

array_push($where, $quadra_id);

...以下內容:

$where ['quadra_id'] = $quadra_id;

0

您可以設置$,其中等於$ _POST。如果您有其他表單輸入不應位於$ where,則可以將它們放在輸入名稱的數組中,如下所示。

<input name='where[quadra_id]' value='' /> 

在這種情況下,$將被設置爲$ _POST ['where']。