0

我有这个特定的代码来检查一个变量是否不为空,如果它不为空,它将合并到一个“有”一个值的数组中。如果它是空的,它将合并到一个数组中,但传递“没有值或任何其他东西,甚至是空值”

这是我的代码。

$fb_description_arr[] = ($page_desc != "") ? $page_desc : array();
$fb_share_arr[] = ($share_link != "") ? $share_link : array();
$tweet_arr[] = ($twitter_link != "") ? $twitter_link : array();
$follow_arr[] = ($twitter_follow != "") ? $twitter_follow : array();
$site_link_arr[] = ($site_link != "") ? $site_link : array();

假设$page_desc 不为 null,并且值为“This is me”,其余变量为 null

$test_arr = array_merge($fb_description_arr, $fb_share_arr, $tweet_arr, $follow_arr, $site_link_arr);
print_r($test_arr);

所以我尝试调试并在其上显示合并的数组。这将在下面显示。

数组 ( [0] => 这是我 [1] => 数组 ( ) [2] => 数组 ( ) [3] => 数组 ( ) [4] => 数组 ( ) )

因此,如果我使用 php 中的 count() 函数进行计数

$total_raffle = count(array_merge($fb_description_arr, $fb_share_arr, $tweet_arr, $follow_arr, $site_link_arr));

显然,它将显示“5”的输出

我在三元运算符中尝试了哪些解决方案来传递一个不会在 count() 函数中计算的空值。

  1. 大批()
  2. 无效的
  3. 错误的
  4. “”

所以我想要的输出是“1”,因为$page_desc 是唯一有值的变量,其余的没有任何值

这东西有什么解决办法吗?

帮助将不胜感激。:)

4

1 回答 1

1

对于您的问题,我能想到的最简单的解决方案是摆脱三元组并使用赋值的副作用将值附加到 $test_arr:

<?php

$page_desc = "This is me";
$share_link = $twitter_link = $twitter_follow = $site_link = '';

if ($page_desc !== "")  {
    $test_arr[] = $fb_description_arr[] = $page_desc;
}

if ($share_link !== "")  {
    $test_arr[] = $fb_share_arr[] = $share_link;
}

if ($twitter_link !== "")  {
    $test_arr[] = $tweet_arr[] = $twitter_link;
}

if ($twitter_follow !== "")  {
    $test_arr[] = $follow_arr[] = $twitter_follow;
}

if ($site_link !== "")  {
    $test_arr[] = $site_link_arr[] = $site_link;
}


var_dump($test_arr, count($test_arr));

(请注意,此代码假定其中包含空数组的一堆变量不是您以后的代码所期望的)

于 2013-03-25T04:42:52.660 回答