0

我正在尝试获取数组的所有唯一值。

$Arr_TitleID = "92 1 92 38 1 6 1";
echo "Arr_TitleID: " . $Arr_TitleID;

$TitleID_Explode = explode(" ", $Arr_TitleID);
$BigTitleID_Explode = array_unique($TitleID_Explode);

$CTID_count = count($BigTitleID_Explode);
echo "count(CTID_count): " . $CTID_count;

for($i = 0; $i < $CTID_count; $i++)
{
    echo "Piece $i = $BigTitleID_Explode[$i]";
}

输出

Arr_TitleID:92 1 92 38 1 6 1
计数(CTID_count):4
棋子 0 = 92
件 1 = 1
第 2 部分 =
块 3 = 38

6号在哪里?为什么数字6应该是空白?

4

3 回答 3

0

数组索引不像 0、1、2、3 那样连续

数组索引为 0、1、3、5

Array
(
    [0] => 92
    [1] => 1
    [3] => 38
    [5] => 6
)

所以像这样编辑代码,只需添加一行以重新索引为数值

$Arr_TitleID = "92 1 92 38 1 6 1";
echo "Arr_TitleID: " . $Arr_TitleID;

$TitleID_Explode = explode(" ", $Arr_TitleID);
$BigTitleID_Explode = array_unique($TitleID_Explode);

//只需添加波纹管

$BigTitleID_Explode = array_values($BigTitleID_Explode);

//

$CTID_count = count($BigTitleID_Explode);
echo "count(CTID_count): " . $CTID_count;

for($i = 0; $i < $CTID_count; $i++)
{
    echo "Piece $i = $BigTitleID_Explode[$i]";
}
于 2013-09-02T16:53:47.693 回答
0

你的脚本的输出看起来像这样,

Array
(
    [0] => 92
    [1] => 1
    [3] => 38
    [5] => 6
)

要迭代 using for loop,您应该使用array_values或尝试foreach循环而不是for.

使用array_values您将获得一个数字索引数组,

$BigTitleID_Explode = array_values(array_unique($TitleID_Explode));

结果应该是,

Array
    (
        [0] => 92
        [1] => 1
        [2] => 38
        [3] => 6
    )
于 2013-09-02T16:59:49.110 回答
0

这是你的问题。虽然您可能会找到唯一值,但该数组并未创建新键,因此您的计数器不足以捕捉到最后一个键。

$Arr_TitleID = "92 1 92 38 1 6 1";
echo "Arr_TitleID: " . $Arr_TitleID;
$TitleID_Explode = explode(" ", $Arr_TitleID);
$BigTitleID_Explode = array_unique($TitleID_Explode);
print_r($BigTitleID_Explode);
$CTID_count = count($BigTitleID_Explode);
echo "count(CTID_count): " . $CTID_count;
for($i = 0; $i < $CTID_count; $i++)
{
    echo "Piece $i = $BigTitleID_Explode[$i]";
}

我添加的 print_r 行输出如下: Array ( [0] => 92 1 => 1 [3] => 38 [5] => 6 )

值 6 在键 5 上。

我建议在我添加的行所在的位置使用排序功能,然后一切都会正常进行。

有很多可供选择,所以我不能推荐一个,因为我不知道你需要哪一个来满足你的目的,但这里有一个参考列表。

http://www.w3schools.com/php/php_ref_array.asp

于 2013-09-02T17:02:34.897 回答