【发布时间】:2020-06-17 07:44:48
【问题描述】:
我有一个php代码如下图:
$variable = \CTIME\DataPoint\get_message(); // Line A
echo '<pre>'; print_r($variable); echo '</pre>'; // Line B
echo '<pre>'; var_dump($variable); echo '</pre>'; // Line C
print_r(array_filter($variable, function ($i) { return $i->top_portion == 'Hello – World'; })); // Line D
B 行打印:
Array
(
[0] => stdClass Object
(
[language] => en
[client_id] => 12345
[top_portion] => Hello World
)
[1] => stdClass Object
(
[language] => en
[client_id] => 56789
[top_portion] => Hello – World
)
)
C 行打印:
array (
0 =>
(object) array(
'language' => 'en',
'client_id' => 12345,
'top_portion' => 'Hello World',
),
1 =>
(object) array(
'language' => 'en',
'client_id' => 56789,
'top_portion' => 'Hello – World',
),
)
D行打印:
Array
(
)
问题陈述:
我想知道我需要添加什么 PHP 代码,以便它只打印具有 [top_portion] => Hello – World
的对象Array
(
[0] => stdClass Object
(
[language] => en
[client_id] => 56789
[top_portion] => Hello – World
)
)
这是我尝试过的:
print_r(array_filter($variable, function ($i) { return $i->top_portion == 'Hello – World'; }));
打印出来;
Array
(
)
【问题讨论】:
-
对我来说很好:3v4l.org/FOjXu
-
它工作正常..
-
和 P.S.:您是分配过滤后的数组还是只是期望通过引用过滤传递的数组(这里谈论
array_filter()的返回值)? -
@flash 谢谢,似乎仍然有效。你能回答我关于返回值的问题吗?即当你说“它打印”时 - 实际打印的代码在哪里?并且返回值是否赋值?
-
很奇怪,你有没有机会获得(或其他)一个 phpinfo() 输出?另外:如果您从此处粘贴的 3v4ls 中复制并粘贴确切的代码(包括硬编码的数据数组),它可以在您的机器上运行吗?还是没有?
标签: php arrays unicode utf-8 array-filter