PHP isset多维数组,变量用于数组第一维的键

时间:2014-08-25 15:19:40

标签: php arrays multidimensional-array key isset

我有一个数组数组,如下所示(例如)

$array = (
    [0] => array (
        [a_key]     => 123456,
        [b_key]     => First Name,
        [c_key]     => Last Name,
        [this_key ] => Institution,
        ),
    [1] => array (
        [a_key]     => 123456,
        [b_key]     => First Name,
        [c_key]     => Last Name,
        [this_key ] => Institution,
        ),
    [2] => array (
        [a_key]     => 123456,
        [b_key]     => First Name,
        [c_key]     => Last Name,
        [this_key ] => Institution,
        ),
)

我想检查$ array [$ key] ['this_key']是否为空或不等于''

$key = (any number)

如何设置$ key以匹配任何数字,以便当数组中至少有一个二维数组设置了[this_key]时,以下内容返回true?

if( $array[$key]['this_key'] != '' )
    echo "true";
else 
    echo "false";

因此,如果未设置$ array [0] [this_key],设置$ array [1] [this_key],并且未设置$ array [2] [this_key],则IF语句将返回true,因为at所有数组中至少有一个设置了[this_key]。


修改

为情况提供一些背景信息,并提供可应用此解决方案的特定方案:

我有一个数据库中需要显示的人员列表。对于每个人,我有姓名,可选个人持有的机构/学位/职称。这些需要显示如下:

没有标题:
John Smith,Jane Doe,Fred Nerk

标题:
John Smith,画家;教授Jane Doe; Fred Nerk,天体物理学家

标题的混合案例:
约翰史密斯;教授Jane Doe; Fred Nerk

请注意每种情况下使用的标点符号。如果任何记录都没有可选信息,则逗号会分隔这些个人。如果有一个或多个记录的可选信息,分号将分隔个人。

使用if语句,我将能够确定其中一个人是否具有可选信息,即使其他每个人都没有。


顺便说一下:

这个PHP Sandbox Tool在将PHP代码集成到我的文件之前测试PHP代码非常有用。它支持从4.4.9到5.5.5的PHP版本。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

foreach($array as $key=>$array){
    if(!empty($array['this_key'])){
        //found one, do something here           
    }
}

答案 1 :(得分:0)

对于 PHP> = 5.5.0 ,我使用了:

if(array_filter(array_column($array, 'this_key'))){
    // true, do something
}

当这返回true时,我知道至少有一个数组在this_key中有信息,因此我可以为这种情况做一些独特的事情。

我的服务器运行 PHP 5.4.13 ,因此我使用了recommended userland implementation for PHP lower than 5.5。它实现起来很简单,并且按预期工作。