PHP检查数组中是否存在项,然后返回值-转换为函数

PHP检查数组中是否存在项,然后返回值-转换为函数,php,arrays,wordpress,Php,Arrays,Wordpress,在WordPress网站上工作并使用高级自定义字段。我在一个灵活的内容数组中循环,并从返回创建一个数组 问题是我需要在数组中返回不同名称的图像,但是图像可能为null(它们可以为空) 这项工作目前有效: "images" => [ "image_one" => ( $l['image_one']['url'] ? $l['image_one']['url'] : NULL ), /* etc */ ] 但这是一个switch语句,所以我希望能够通过: $l['i

在WordPress网站上工作并使用高级自定义字段。我在一个灵活的内容数组中循环,并从返回创建一个数组

问题是我需要在数组中返回不同名称的图像,但是图像可能为null(它们可以为空)

这项工作目前有效:

"images" => [
    "image_one"   => ( $l['image_one']['url'] ? $l['image_one']['url'] : NULL ),
    /* etc */
]
但这是一个switch语句,所以我希望能够通过:

$l['image_one']['url']
并仅在存在URL时返回URL。但是,我可以有一个数组,其中$l['image_three']['url']未设置,并且不在返回的数组中,因此我将始终得到未定义的偏移量通知

我可以继续我现在的生活方式,但它越来越重复,我更愿意这样做,例如:

 "image_one" => imageExists($l['image_one']['url'])

当然,我已经调用了一个不存在的密钥(可能)。有没有其他方法整理我的速记if?

通常我只会内联处理,但由于您正在寻找函数:

function imageExists($arr = null) {
    return (empty($arr['url'])) ? null : $arr['url'];
}

imageExists($l['image_one']);

通常我只会内联执行,但由于您正在寻找函数:

function imageExists($arr = null) {
    return (empty($arr['url'])) ? null : $arr['url'];
}

imageExists($l['image_one']);
在三元条件下使用:

function imageExists($image) {
    return isset($image['url']) ? $image['url'] : NULL;
}
并以以下方式调用:

imageExists($l['image_one']);
如果您使用的是>=PHP7.0版本,则可以使用null合并运算符()执行以下操作:

在三元条件下使用:

function imageExists($image) {
    return isset($image['url']) ? $image['url'] : NULL;
}
并以以下方式调用:

imageExists($l['image_one']);
如果您使用的是>=PHP7.0版本,则可以使用null合并运算符()执行以下操作:


您的代码中的
$l
是什么?你循环了一些数组,这是子数组吗?@VasilShaddix是的,对不起,$l是数组。你的代码中,
$l
是什么?你循环了一些数组,这是子数组吗?@VasilShaddix是的,对不起,$l是一个数组。