【发布时间】:2021-04-06 22:24:28
【问题描述】:
假设我有一个这样的多维数组,
$details = array(
'fruit' => array(
'path' => '/tmp/fruit',
'headers' => array(
'size',
'weight',
'colour')),
'car' => array(
'path' => '/tmp/car',
'headers' => array(
'model',
'fuel',
'colour')),
'animal' => array(
'path' => '/tmp/animal',
'headers' => array(
'species',
'sex',
'locale'));
为什么这不起作用?假设网址是 example.url/web/page/fruit
$uriPath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$base = basename($uriPath);
if(in_array($base, $details)) {
echo($details[$base]['path']);
}
有没有更好的办法?
【问题讨论】:
-
在这种情况下
$base的值是多少? -
如果 url 是 example.url/web/page/fruit 那么它将是“fruit”。如果我回显 $base,我会得到水果。
-
所以你应该改用array_key_exists()
标签: php arrays if-statement multidimensional-array