Php 如何找到数组中有多少个键?

Php 如何找到数组中有多少个键?,php,arrays,json,Php,Arrays,Json,我这样做是为了找出数组中有多少个value $forExample = '{"sik1":"hello","sik2":"world","sik10":"today","sik41":"yesterday"}'; 在上面的示例中,总共有4个值 我试过了 $test = json_decode($forExample); $rows = count($test); for ($valueCount = 0; $valueCount &

我这样做是为了找出数组中有多少个
value

$forExample = '{"sik1":"hello","sik2":"world","sik10":"today","sik41":"yesterday"}';
在上面的示例中,总共有4个值

我试过了

$test = json_decode($forExample);
        $rows = count($test); 

        for ($valueCount = 0;
             $valueCount < $rows;
             $valueCount ++) {
            if ($rows) {
                if ($test->{'sik'[$valueCount]} != '') {
                    echo $test->{'sik'[$valueCount]};
                }
            }
        } 
$test=json\u decode($example);
$rows=计数($test);
对于($valueCount=0;
$valueCount<$rows;
$valueCount++){
如果($行){
如果($test->{'sik'[$valueCount]}!=''){
echo$test->{'sik'[$valueCount]};
}
}
} 

哪里出错?

您的数组定义错误,请尝试:

<?php
$forExample =
    array("sik1"=>"hello",
    "sik2"=>"world",
    "sik10"=>"today",
    "sik41"=>"yesterday");
var_dump(count($forExample));
?>

您必须将true作为第二个参数添加到将返回数组的
json\u解码($json,true)

count(array\u keys($array))
将返回数组中的键数


请检查文档以了解函数的预期行为。

您无法使用逻辑打印
json
中的完整值

第一个问题是,您正在计算
json
object
,这会给您带来类似的错误

警告:count():参数必须是在中实现可计数的数组或对象

但是如果你喜欢这个
json\u解码($example,true),当然你可以计算一下将转换为关联的
数组
并进行
计数

您的
for
循环存在逻辑问题,即使您获得了如我上面建议的数组计数,

因此,
计数
为4。您可以使用
$valueCount
循环并找到它的键,该键将转到
0
3
。根据您的逻辑,键将类似于
sik0
sik1
sik2
sik3
,但实际键是
sik1
sik2
sik10
sik41
。因此,您将只获得
sik1
sik2

解决方案

使用
foreach
循环

<?php

$forExample = '{"sik1":"hello","sik2":"world","sik10":"today","sik41":"yesterday"}';
$test = json_decode($forExample);

foreach ($test as $key => $value){
    echo $key, ' => ', $value;
    echo '<br>';
}

?>

如果使用
json\u解码($example,true)json将被转换为关联的数组。然后可以使用php提供的所有数组函数。e、 g.
array\u unique
告诉发送此垃圾的人使用数组而不是foo1…fooN键。此外,if($row)是冗余的,因为当count=0@kuh-我试过了,但没有改变。我当然知道:)我想你误解了我的问题。
sik
前面的值是可变的。一个字,完美!酷!快乐编程!也不要投票;)
sik1 => hello
sik2 => world
sik10 => today
sik41 => yesterday