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