1

该文件最初是这样的:

$字符串

红色红色红色绿色绿色绿色绿色绿色黑色黑色黑色黑色白色白色白色白色白色白色白色白色白色白色白色绿色红色橙色橙色橙色黑色黑色黑色黄色黄色黄色黄色黄色黄色

foreach ($inarray as $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($thisarray as $key => $value),但它读取的方式不是我所期望的。非常感谢

4

4 回答 4

2
<?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>";
}
?>
于 2012-09-09T05:09:50.537 回答
1
foreach ($array as $k=>$v) {
   $color = preg_replace('/\[.*\]/', '', $k);
   echo $color . ' is ' . $v;
}
于 2012-09-09T04:26:58.997 回答
1

您在那里的数组表示中可能有一些错字。无论如何,要从字符串中读取,您可以使用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
)

您可以轻松地将其扩展到从数组或其他内容中的多个字符串中读取。

高温高压

于 2012-09-09T04:34:17.783 回答
0

不确定您是否在寻找更简单的东西。但我认为你想要这个:

<?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
于 2012-09-09T15:10:55.663 回答