2013-09-27 2 views
0

Какой у меня был бы лучший способ получить данные из этого массива?Получение данных из массива

array(4) { 
    [0]=> array(10) { 
     ["id"]=> string(3) "158" 
     ["name"]=> string(8) "Tractors" 
     ["parent_id"]=> string(1) "0" 
     ["image_id"]=> string(2) "37" 
     ["blurb"]=> string(17) "Agrilife Tractors" 
     ["brand_name"]=> string(4) "SAME" 
     ["brand_id"]=> string(1) "2" 
     ["cat_id"]=> string(1) "1" 
     ["sorder"]=> string(1) "0" 
     ["state"]=> string(1) "1" 
    } 
    [1]=> array(10) { 
     ["id"]=> string(3) "159" 
     ["name"]=> string(8) "Ride Ons" 
     ["parent_id"]=> string(1) "0" 
     ["image_id"]=> string(2) "74" 
     ["blurb"]=> string(0) "" 
     ["brand_name"]=> string(4) "SAME" 
     ["brand_id"]=> string(1) "2" 
     ["cat_id"]=> string(1) "2" 
     ["sorder"]=> string(1) "1" 
     ["state"]=> string(1) "1" 
    } 
    [2]=> array(10) { 
     ["id"]=> string(3) "160" 
     ["name"]=> string(9) "Machinery" 
     ["parent_id"]=> string(1) "0" 
     ["image_id"]=> string(2) "14" 
     ["blurb"]=> string(0) "" 
     ["brand_name"]=> string(4) "SAME" 
     ["brand_id"]=> string(1) "2" 
     ["cat_id"]=> string(1) "3" 
     ["sorder"]=> string(1) "2" 
     ["state"]=> string(1) "1" 
    } 
    [3]=> array(10) { 
     ["id"]=> string(3) "161" 
     ["name"]=> string(17) "Outdoor Equipment" 
     ["parent_id"]=> string(1) "0" 
     ["image_id"]=> string(3) "114" 
     ["blurb"]=> NULL 
     ["brand_name"]=> string(4) "SAME" 
     ["brand_id"]=> string(1) "2" 
     ["cat_id"]=> string(1) "5" 
     ["sorder"]=> string(1) "3" 
     ["state"]=> string(1) "1" 
    } 
} 
Tractors 

Мой HTML выглядит следующим образом я пытаюсь foreach, чтобы получить все соответствующие данные так, что я могу повторить, когда и где это необходимо.

HTML:

foreach($assoc_categories as $assoc_cat) 
{ 
    // Page load - does assoc exist? 
    $checked_state = ""; 
    $does_assoc_exist = $this->Ps_products_model->brand_specific_cat_assoc_exist($brand_id, $assoc_cat['id']); 
    if($does_assoc_exist == "1") 
    { 
     $checked_state = " checked='checked'"; 
    } 
?> 

    <div> 
     <input type="checkbox" name="product_category" class="product_category_selector" id="product_category_<?php echo $assoc_cat['id']; ?>" data-id="<?php echo $assoc_cat['id']; ?>" <?php echo $checked_state; ?> /> <?php echo $assoc_cat['name']; ?> 
    </div> 
    <input class="order" type="input" /> 

<?php 
} 
?> 
+0

Значит, ваш код не работает? Ваши ошибки или что-то еще? – Jeemusu

+0

@Jeemusu Я знаю, что если я использую $ assoc_cat [0], он получит данные из объектов 0, пытающихся выяснить это, я не должен этого делать, поскольку я хочу получить все данные из всех объектов –

+0

С вашим текущим foreach вы должны иметь возможность получить все данные из массива? Я не уверен, в чем ваш вопрос? – Jeemusu

ответ

0

Чтобы сбросить все значения, вы должны были бы вложены foreach так:

foreach ($original_array as $sub_array) { 
    foreach ($sub_array as $key=>$value) { 
     echo $key.' '.$value.'<br>'; 
    } 
} 

Чтобы получить только одно значение, вам нужно получить к нему доступ с его адрес. Он не может быть установлен, поэтому сначала проверьте:

foreach ($original_array as $sub_array) { 
    // Say you want all the `name`s 
    if (isset($sub_array['name'])) { 
     echo $sub_array['name'].'<br>'; 
    } 
} 
+0

Спасибо, Стив даст это назад –

+0

Извините, это своего рода общий ... не уверен, в чем ваша проблема, надеюсь, что это поможет. – Ben

Смежные вопросы