2014-02-17 1 views
0

Мне интересно, как нажимать определенные части ассоциативного массива, полученные из цикла foreach в другой массив.Нажимать части ассоциативного массива на другой

Код:

foreach ($result as $product) { 
    $liveArray = $product['prodid']['title']['unit']; 
    insertData($dbh, $product); 
    } 
} while (!empty($rule)); //Stops loops if last element on page is found 

массив $ продукта после цикла Еогеасп:

array(5) { 
    ["prodid"]=> 
    string(6) "123456" 
    ["title"]=> 
    string(29) "Test item 1" 
    ["unit"]=> 
    string(4) "100pk " 
    ["price"]=> 
    string(4) "10.99" 
    ["wasprice"]=> 
    string(4) "11.99" 
} 

Я только хочу [ 'ProdID'], [ 'название'] и [ 'блок'] из массива и добавлен в $ liveArray. В результате чего-то вроде этого:

array(1) { 
    [0]=> 
    array(5) { 
    ["prodid"]=> 
    string(6) "123456" 
    ["title"]=> 
    string(29) "Test item 1" 
    ["unit"]=> 
    string(4) "100pk " 
    ["price"]=> 
    string(4) "10.99" 
    ["wasprice"]=> 
    string(4) "11.99" 
} 
    [1]=> 
    array(5) { 
    ["prodid"]=> 
    string(6) "123457" 
    ["title"]=> 
    string(29) "Test item 2" 
    ["unit"]=> 
    string(4) "50pk " 
    ["price"]=> 
    string(4) "11.00" 
    ["wasprice"]=> 
    string(4) "13.00" 
} 
} 

Любая помощь будет очень признательна.

ответ

1

нравится это?

$liveArray = array(); 
do { 
    foreach ($result as $product) { 
     $liveArray[] = array(
      'prodid' => $product['prodid'], 
      'title' => $product['title'], 
      'unit' => $product['unit'], 
     ); 
     insertData($dbh, $product); 
    } 
} while (!empty($rule)); //Stops loops if last element on page is found 
// print_r($liveArray); 
+0

Точно так! Спасибо за быстрый ответ, я продолжаю думать, что есть какой-то волшебный способ, который заставил бы его работать и быть довольно ха-ха! – DrDog

1

// добавлен как ответ для лучшего форматирования.

DrDog, если вы хотите магический путь, вот оно:

$liveArray = array(); 
$keepKeys = array('prodid' => true, 'title' => true, 'unit' => true,); 
/* or more magic 
$keepKeys = array('prodid', 'title', 'unit',); 
$keepKeys = array_flip($keepKeys); 
*/ 
do { 
    foreach ($result as $product) { 
     $liveArray[] = array_intersect_key($product, $keepKeys); 
     insertData($dbh, $product); 
    } 
} while (!empty($rule)); //Stops loops if last element on page is found 
// print_r($liveArray); 
Смежные вопросы