从php中的数组中提取值[关闭]

问题描述:

In my code, $return returns an array of data. I am trying to extract the [2] value in that array. For some reason it just returns the whole array instead of the value I am trying to extract. I feel like this is really simple and I am just overlooking something.

Here is my code:

$url = 'https://sandbox.familysearch.org/platform/tree/persons/KWWM-5R1/portrait?access_token=' . $_SESSION['fs-session'];

$return = print_r(get_headers($url));

echo $return[2];

And here is a snip from the array that was printed:

Array ( [0] => HTTP/1.1 307 Temporary Redirect [1] => Server: Apache-Coyote/1.1 [2] => Location: https://integration.familysearch.org/sandbox/v2/TH-501-48051-27-34/thumb200.jpg?ctx=ArtCtxPublic )

How can I get the [2] value?

Try getting rid of the print_r:

$return = get_headers($url);
echo $return[2];

print_r is a function used to print out information from a variable (in the case of your array, its contents). You're setting $return equal to the return value of print_r (which is just true), rather than the headers array you want.

Like this:

$url = 'https://sandbox.familysearch.org/platform/tree/persons/KWWM-5R1/portrait?access_token=' . $_SESSION['fs-session'];

$return = get_headers($url);

echo $return[2];

$return = print_r(get_headers($url));

should be $return =get_headers($url);

What you are seeing on screen is the result of the print_r(). This does not return an array to be assigned to $return instead it is just printing it in the screen.

So technically your $return does not have any value and your echo statement is actually not echoing anything.