no_freedom
no_freedom

Reputation: 1961

Search multidimensional array by specific key and print the value php

I'm trying to print array. All code working fine with foreach loop. But I'm trying to print with associated keys. Is it possible?

Example: key['user_id'] this will print all user_id from array. is it possible? please help me thanks

Array
(
    [Post1] => Array
    (
        [id] => 1
        [title] => hi
    )
    [Post2] => Array
    (
        [0] => Array
            (
                [user_id] => 1
            )
        [1] => Array
            (
                [user_id] => 2
            )
    )
    [Post3] => Array
    (
        [0] => Array
            (
                [user_name] => 1
            )
    )
)

Here is my PHP code:

foreach($post as $key => $value) {
    foreach($value as $print => $key) {
        if (is_array($key)){
            foreach($key as $print2 => $key2) {
                echo "<br>".$key2;
            }
        }else{
            echo "<br>".$key;
        }
    }
}

Upvotes: 0

Views: 1527

Answers (2)

Shoe
Shoe

Reputation: 76240

I'm trying to print array. All code working fine with foreach loop. But I'm trying to print with associated keys. Is it possible?

You can easily use recursion for such a problem. You can use something along the lines of:

function printValuesByKey($array, $key) {
    if (!is_array($array)) return;
    if (isset($array[$key])) 
        echo $key .': '. $array[$key] .'<br>';
    else
        foreach ($array as $v)
            printValuesByKey($v, $key);
}

In your example:

printValuesByKey($array, 'user_id');

will print:

user_id: 1
user_id: 2

Upvotes: 1

dynamic
dynamic

Reputation: 48091

You can print_r to achive the same results you want with your triple for each.

Upvotes: 1

Related Questions