首页 > 解决方案 > 获取数组中有值的值的个数

问题描述

我有这个数组

array (size=5)
  'amazon' => 
    array (size=3)
      'url' => string '' (length=0)
      'display' => string 'Yes' (length=3)
      'best_offer' => string '' (length=0)
  'ebay' => 
    array (size=3)
      'url' => string '' (length=0)
      'display' => string 'Yes' (length=3)
      'best_offer' => string '' (length=0)
  'moosejaw' => 
    array (size=3)
      'url' => string '' (length=0)
      'display' => string 'Yes' (length=3)
      'best_offer' => string '' (length=0)
  'rei' =>
    array (size=3)
      'url' => string '' (length=0)
      'display' => string 'Yes' (length=3)
      'best_offer' => string '' (length=0)
  'jenson' => 
    array (size=3)
      'url' => string 'https://ebay.com' (length=16)
      'display' => string 'Yes' (length=3)
      'best_offer' => string '' (length=0)

我需要检查“url”是否有一个字符串,所以如果有那么只计算有多少有一个 URL

所以对于这个例子,这应该只显示“1”

很感谢任何形式的帮助 :-)

顺便说一句,这就是我现在所拥有的

if( have_rows('marketplace_links') ):
    while( have_rows('marketplace_links') ): the_row();

    $value = get_field('marketplace_links', $post->ID);
    echo count($value);

    endwhile;
endif;

上面的代码显示 5 而不是 1

标签: phparrayswordpress

解决方案


is_string() : 查找变量的类型是否为字符串

您可以使用简单foreachis_stringempty

$counter = 0;
foreach($a as $v){
 is_string($v['url']) && !empty($v['url']) ? ($counter++) : '';
}

工作示例:https ://3v4l.org/rSttF


推荐阅读