2017-08-02 45 views
-1

我有一個數組,其中鍵是輸入的名稱,值是從表單提交的輸入的值。應該是這個樣子推陣列內帶有strpos的數組

array { 
    'qty' => '0', 
    'name' => 'No name', 
    'qty1' => '1', 
    'name1' => 'John Cena' 
    'qty2' => '2', 
    'name2' => 'You cant see him' 
} 

我用這一個只得到有1和2的字符鍵,在這種情況下「qty1」「名1」「qty2」「NAME2」,和我推入空數組$ emptyArray

foreach ($inputs as $x => $x_value) { 
    if (stripos($x, "1") !== false) { 
    array_push($emptyArray, $x_value); 
    } 
} 

我希望得到的

012結果

,但我得到這個:(

array(6) { 
    ["qty"]=> 
    string(1) "0" 
    ["name"]=> 
    string(7) "No name" 
    ["qty1"]=> 
    string(1) "1" 
    ["name1"]=> 
    string(9) "John Cena" 
    ["qty2"]=> 
    string(1) "2" 
    ["name2"]=> 
    string(16) "You cant see him" 
} 
+0

你不能指望多次按鍵相同的同一陣列英寸這樣的事情沒有任何意義。 – ksjohn

+0

@ksjohn哈哈,只是一個錯字。應該是0和1 –

回答

1
$limit = count($inputs)/2; 
for ($idx = 0; $idx < $limit; ++$idx) { 
    if (array_key_exists('qty'.$idx, $inputs) && array_key_exists('name'.$idx, $inputs)) { 
     $arr[] = array($inputs['qty'.$idx], $inputs['name'.$idx]); 
    } 
} 
+0

我應該把這個for循環在foreach中嗎? –

+0

你爲什麼要那樣做?我在那個循環中使用了你的$ inputs數組。如果您知道您感興趣的密鑰並且不會使用所有密鑰,則無需使用foreach。 – ksjohn

+0

我的意思是我的輸入是動態的theres在前端的一部分,當用戶單擊一個按鈕時,它將添加另一個輸入字段和它的名稱上的數字遞增,qty1 qty2 qty3相同name1 name2 name3 –