【发布时间】:2015-04-09 12:27:42
【问题描述】:
我需要一些帮助来解决我正在处理的另一个 PHP 问题。我不会发布确切的问题,因为我更愿意尝试应用我从这里获得的知识来解决我的问题。
第一: 我有一个关联数组。我必须遍历数组以找到键以特定字符串开头的数组值,并将键和值都推送到输出数组。
例如:
- 遍历下面的数组并将所有以“edible_”开头的键的元素推送到输出数组:
$assoc_array = array(
'edible_fruit' => 'apple',
'animal' => 'cat',
'edible_veg' => 'pumpkin',
'number' => '23',
'city' => 'Cape Town',
'edible_berry' => 'blueberry',
'color' => 'blue'
);
这行得通吗?
$result = array();
foreach ($assoc_array as $key => $value) {
if (substr($key, 0, 7) == "edible_") {
array_push($result, $value);
}
}
print_r($result);
第二: 如何从输出数组的键中删除“edible_”?有了这第二点,我什至不知道从哪里开始!
第三: 在您的帮助下,我设法弄清楚了上述问题,谢谢!现在我只需要找出如何在新行上打印每个元素,并在每行末尾添加日期和时间戳?我有这个(似乎没有工作):
while (list($key, $value) = each($output)) {
print_r("$key => $value" . date("y/m/d G.i:s", time()) . "<br>");
}
【问题讨论】:
-
“这行得通吗?” - 为什么不试试呢?我觉得不错。
-
要从键中删除字符串,您可以使用
str_replace()或preg_replace()。第一个将替换字符串中的任何位置,第二个使用正则表达式,因此您可以根据需要将替换锚定到字符串的开头。 -
我正在尝试这个,但它似乎根本没有打印任何东西。输出保持空白:-/
-
Works for me - 你是在控制台还是在 Apache 中运行它?
-
那么这个问题我们在哪里呢?下面的一个答案解决了您的问题吗?
标签: php arrays string algorithm associative-array