文件最初是这样的:
$strings
重新绘制绿色绿色绿色黑色黑色
foreach($inarray为$k=>$v)
所以我转换成阵列
Array ( [0] => red[red] => 17
[1] => orange[orange] => 3
[2] => green[green] => 46
[3] => yellow[yellow] => 5
[4] => black[black] => 21
[5] => white[white] => 10
)
我如何像一样读取阵列
red is 17
orange is 3
green is 46
yellow is 5
black is 21
white is 10
目前我正在使用foreach($thissarray as$key=>$value),但它的读取方式并非我所期望的。非常感谢
<?php
$arr=array(0 => 'red[red] => 17',
1=> 'orange[orange] => 3' ,
2 => 'green[green] => 4' ,
3 => 'yellow[yellow] => 5' ,
4 => 'black[black] => 21' ,
5 => 'white[white] => 10');
foreach ($arr as $k=>$v) {
$str=preg_match('[[a-z 's]+]',$v,$match);
$num=preg_match('/[0-9]+$/',$v,$matchnum);
echo $match[0].' is '.$matchnum[0]."<br>";
}
?>
foreach ($array as $k=>$v) {
$color = preg_replace('/'[.*']/', '', $k);
echo $color . ' is ' . $v;
}
上面的数组表示可能有一些拼写错误。无论如何,要从字符串中读取,您可以使用sscanf(..)
(我希望您正在检查字符串的有效性,当然还有sscanf(..)
的返回值):
<?php
$output = array();
$s = "red is 17";
$arr = sscanf($s, "%s is %d");
$output[$arr[0]] = $arr[1];
print_r($output);
?>
输出:
Array
(
[red] => 17
)
您可以很容易地将其扩展到从数组或其他内容中的几个字符串进行读取。
HTH
不确定你是否在寻找更简单的东西。但我想你想要这个:
<?php
$colour = array()
$color['red'] = 17;
$color['orange'] = 3;
//etc
foreach ($colour as $name=>$value) {
echo "<br> $name is $value";
}
?>
输出
red is 17
orange is 3