简体   繁体   中英

PHP - How to echo Value from Multidimensional Array

I have:

$request = Array
(
    [ID] => 2264
    [SUCCESS] => Array
        (
            [0] => Array
                (
                    [MESSAGE] => Service Details
                    [LIST] => Array
                        (
                            [retail_name] => 
                            [credit_admin] => FREE
                            [credit] => 0
                            [discount_admin] => 0
                            [discount] => 0
                            [cartdiscount] => 0

If I do:

echo $request[ID];                            // it says: 2264
echo $request[SUCCESS];                       // it says: Array
echo $request[SUCCESS][0][MESSAGE];           // it says: Service Details

But I need to echo "credit" and if I do:

echo $request[SUCCESS][0][LIST];           // I get ERROR
echo $request[SUCCESS][0][LIST][credit];   // I get ERROR

I dont understand why? How can I do it? Thank you

You aren't using quotes to specify the array keys. you should use ['ID'] instead of [ID]

PHP fixes this for you and presumes you meant ['ID'] instead of [ID] and trows a notice in the logs

This doen't work for [LIST] however because LIST is a reserved keyword. That means that list has a function in PHP. PHP doesn't know which one you need and doesn't return result.

Change [LIST] to ['LIST'] and you should recieve your values. Please learn to use arrays with quotes, to prevent errors like this in the future

Depends on Your Key and Value

If your array key has a value it will directly output that

for ex

 echo $request[ID];  

b'coz id directly holds a value;

But

$request[SUCCESS]; 

// holds an array. you cannot echo a array directly 
// to do something like this you will need the key of your inner 
// array with outer array in combinations to echo the values 

for ex

 echo $request[SUCCESS][0]['MESSAGE'];  

// Key "O" holds an array also. so you need to use its inner array keys

same needs to be done for

 echo $request[SUCCESS][0]['MESSAGE']['LIST']['credit_admin']; 
 // where again list is a array 

Previously every string without quotes was treated like string if there was no Constant defined under this name, but from PHP 7.2 now issues error of level E_WARNING . Why is $foo[bar] wrong?

PHP Warning:  Use of undefined constant test - assumed 'test' (this will throw an Error in a future version of PHP)

In this example list is treated as construct list() . Using bare strings in associative arrays as keys is deprecated and should be avoided.

Correct way is to call it with quotes (single or double):

echo $request['SUCCESS'][0]['LIST'];
echo $request['SUCCESS'][0]['LIST']['credit'];

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM