Raj
Raj

Reputation: 1437

Not getting array all values using php

I have this following array

$question = array(
    "ques_15" => array(
        "name" => array(
            "0" => "aaa"
        )
    ),
    "ques_16" => array(
        "name" => array(
            "0" => "bbb",
            "1" => "ccc"
        )
    )
);
$i=0;
foreach($question as $k=>$v)
{
   echo $question[$k]['name'][$i];
    $i++;
}

But my output is only

aaaccc

I am missing the value bbb

Upvotes: 0

Views: 50

Answers (4)

Josue Alexander Ibarra
Josue Alexander Ibarra

Reputation: 8995

Check it out in a functional way.
The shorthand array declaration works only on PHP 5.4+ though, but it still works with your longhand array declaration.

$questions = [
    'ques_15' => ['name' => ['aaa']],
    'ques_16' => ['name' => ['bbb', 'ccc']]
];

array_map(function($a){
    foreach ($a['name'] as $v) echo $v;
}, $questions);

Upvotes: 1

t0mpl
t0mpl

Reputation: 5025

in foreach you don't need a counter $i, it's for while() or for()

you array is two dimensional so you need 2 foreach

Upvotes: 1

cmorrissey
cmorrissey

Reputation: 8583

you should loop though like so

foreach($question as $q)
{
   foreach($q['name'] as $v)
   {
       echo $v;
   }
}

Upvotes: 1

Steve
Steve

Reputation: 20469

You need to iterate the inner 'name' arrays - you could use a nested foreach loop:

$question = array(
    "ques_15" => array(
        "name" => array(
            "0" => "aaa"
        )
    ),
    "ques_16" => array(
        "name" => array(
            "0" => "bbb",
            "1" => "ccc"
        )
    )
);
foreach($question as $quest)
{
   foreach($quest['name'] as $val)
   {
       echo $val;
   }
}

Upvotes: 2

Related Questions