2

guys i have multidimensional array which i got it from var_dump of $menu_order with this following array :

array(5) {
[0]=>
array(1) {
  [0]=>
  array(1) {
    ["variant_name"]=>
    string(5) "Spicy"
  }
}
[1]=>
array(2) {
  [0]=>
  array(1) {
    ["variant_name"]=>
    string(5) "Spicy"
  }
  [1]=>
  array(1) {
    ["variant_name"]=>
    string(5) "small"
  }
}
[2]=>
array(2) {
  [0]=>
  array(1) {
    ["variant_name"]=>
    string(5) "Salty"
}
  [1]=>
  array(1) {
    ["variant_name"]=>
    string(6) "medium"
  }
}
[3]=>
array(2) {
  [0]=>
  array(1) {
    ["variant_name"]=>
    string(12) "Mix of Herbs"
  }
  [1]=>
  array(1) {
    ["variant_name"]=>
    string(5) "large"
  }
}
[4]=>
array(0) {
}
}

from that array, i need to get the variant_name become variant_menu_id with this following code :

foreach ($menu_order as $item) {
            if (isset($item[0]["variant_name"])) {
                foreach($item as $value) {
                    $variant_id[] = $this->Main_home_m->m_get_choice_id($value["variant_name"]);
                }
            } else {
                $variant_id[] = array();
            }
        }

the model of m_get_choice_id have this following code :

Function m_get_choice_id($variant_name){
    $this->db->select("variant_menu_id");
    $this->db->from("uhd_variant_menu");
    $this->db->where("variant_name",$variant_name);
    $query = $this->db->get();
    return $query->row_array();
}

the variant_id will be return to this multidimensional array :

array(8) {
  [0]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "3"
  }
  [1]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "6"
  }
  [3]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "4"
  }
  [4]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "7"
  }
  [5]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "5"
  }
  [6]=>
  array(1) {
    ["variant_menu_id"]=>
    string(1) "8"
  }
  [7]=>
  array(0) {
  }
}

but i want the result variant_id become this multidimensional array :

array(5) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [1]=>
  array(2) {
    [0]=>
    string(1) "3"
    [1]=>
    string(1) "6"
  }
  [2]=>
  array(2) {
    [0]=>
    string(1) "4"
    [1]=>
    string(1) "7"
  }
  [3]=>
  array(2) {
    [0]=>
    string(1) "5"
    [1]=>
    string(1) "8"
  }
  [4]=>
  array(0) {
  }
}

guys can you help me how to get the multidimensional array?

thank you (:

2
  • just access the variant id first, then push it Commented Jul 13, 2016 at 3:01
  • can you show me how to do it?@Ghost Commented Jul 13, 2016 at 3:10

1 Answer 1

1

Alternatively, you can create a temporary container holding the ids with an array. After getting them all as an array, push that whole batch inside a parent container:

$result = array();
foreach ($menu_order as $item) {
    $temp = array(); // initialize temporary storage
    if (isset($item[0]["variant_name"])) {
        foreach($item as $value) {
            $variant = $this->Main_home_m->m_get_choice_id($value["variant_name"]);
            $temp[] = $variant['variant_menu_id']; // push single id into temporary storage
        }
    }
    $result[] = $temp; // push ending batch
}
Sign up to request clarification or add additional context in comments.

1 Comment

@Kelvin sure glad this helped

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.