【发布时间】:2014-02-07 15:47:50
【问题描述】:
对于 WordPress 插件,我使用了一个简单的 $wpdb 查询,例如:
global $wpdb;
$table = $wpdb->wp_table_name = $wpdb->prefix . "wp_table_name";
$the_query = $wpdb->get_results(
"SELECT *
FROM $table;
");
它给出了类似的数组(使用var_dump()):
array
0 =>
object(stdClass)[342]
public 'id' => string '1' (length=1)
public 'name' => string 'The Name' (length=8)
public 'status' => string '1' (length=1)
1 =>
object(stdClass)[341]
public 'id' => string '2' (length=1)
public 'name' => string 'The Name 2' (length=10)
public 'status' => string '0' (length=1)
在视图列表中,我想显示一个简单的计数器,例如:
Total: 2; Active: 1; Inactive: 1
总的来说,我用了一个简单的count():
<?php echo count($the_query); ?>
一切正常。现在我想显示另外两个数字,但是 [如果可能] 没有任何循环。
我猜使用许多循环会减慢页面速度。我搜索了很多,他们建议in_array() 或array_key_exists()。但是他们似乎在搜索索引,他们无法检查它是== 1 还是0。
【问题讨论】:
-
$the_query[0]['status']?? -
现在无法测试,但您可以通过转换为
int来对布尔数组求和吗?我在想 php 相当于 Matlabsum(myArray==value). -
另外 2 个查询,状态 == 1 和计数,状态 0 和计数。这是我没有循环解决方案的解决方案:),但循环是我认为最好的。