php foreach 用法

来源:百度知道 编辑:UC知道 时间:2024/08/24 05:18:11
foreach ($a as $r) (
$content = str_replace($r['0'],$r['1'],$content);
)
在教材上看到这样一句代码,百思不得其解,$a是一个拥有两个字符串a,b的数组变量,函数是把$content 字符串中的a字符串变成b字符串,用这种遍历方式就可以得到效果吗?$r只是 $a数组中的一个普通的变量 可以r['0']写吗 是什么意思啊 如何理解?
<?php
function replace_callback($content) {
global $ob_replace;
// Make sure ob_replace is an array
//确定ob_replace要是一个数组的话
if (!is_array($ob_replace)) { return $content; }
// Do each replace
//进行替换
foreach ($ob_replace as $r) {
$content = str_replace($r['0'], $r['1'], $content);
}
return $content;
}
function output_replace($search, $replace) {
global $ob_replace;
if (!is_array($ob_replace)) { $ob_replace = array(); }
$ob_replace[] = array($search, $replace);
}
// Start output buffer with our callback

这个地方的$r经过遍历后当然是一个由键名和值组成的一个数组!
使用foreach遍历数组 是将数组$a里面的键名和值一起给到了 变量$r!
如果你觉得这样不能理解的话你可以在循环开始之前写上:
$r = array();
foreach ($a as $r) (
$content = str_replace($r['0'],$r['1'],$content);
)
也就是在外部强行定义它为一个空数组!

你可试试看

print_r($a)是什么结构,

如果是字符串的数组项目,就用‘’是数字的就不要引号。

估计你这种方法是达不到效果的.

$r 应该要是个数组, 确定$r只是字符串? 不可能的呀