0

请帮我将数组转换为字符串。

数组看起来像这样:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 127
                )

            [1] => Array
                (
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 127
                )
             ...

        )

)

我尝试使用内爆功能,但没有结果...

$string = implode(", ", $pxlCorArr);

PS:对不起我的英语我来自乌克兰。

4

4 回答 4

5

大批:

$pxlCorArr = 
  array(
      array (
           array('red' => 255, 
                 'green' => 255,
                 'blue' => 255,
                 'alpha' => 127
           ),

           array('red' => 255,
                 'green' => 255,
                 'blue' => 255,
                 'alpha' => 127
           )
      )
  );

代码:

$output = '';
foreach ($pxlCorArr as $subArray) {
    if(is_array($subArray)) {
        foreach ($subArray as $subArray2) {
            if(is_array($subArray2)) {
                $output .= implode ('.', $subArray);
                $output .= ',';
            }
        }
    }
}
$output = rtrim($output, ',');

输出:

255.255.255.127,255.255.255.127

于 2012-11-04T12:41:17.643 回答
2

那将是另一种可能性,作为一个函数,您将初始数组传递给该函数,该函数返回您需要的字符串:

function getRGBAlpha($pxlCorArr) {

    $rgbVals = array();
    foreach($pxlCorArr as $subArr) {
        if(is_array($subArr)) {
            foreach($subArr as $colValues) {
                $rgbVals[] = implode('.', $colValues);
            }
        }
    }

    return implode(',', $rgbVals);
}

因此,您可以在代码中的某处执行以下操作,以获得所需的输出:

echo getRGBAlpha($pxlCorArr);

应该输出:

255.255.255.127,255.255.255.127
于 2012-11-04T12:51:34.610 回答
1
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 127
                )

            [1] => Array
                (
                    [red] => 255
                    [green] => 255
                    [blue] => 255
                    [alpha] => 127
                )
             ...

        )

)


$string = '';
$array = $exists_array[0];
foreach ($array as $key => $value) {
$string .= $key." : ".$value."\n";
}
print $string;
于 2012-11-04T13:03:29.267 回答
0

在 lambda 函数上使用 array_walk:

  $implodevals =  create_function('&$val', '$val = implode(".", $val);');
  array_walk($array, $implodevals);
  print rtrim(implode(", ", $array), ",");

输入数组:

   $array = Array
    (
        0 => Array
            (
                "red" => 255,
                "green" => 255,
                "blue" => 255,
                "alpha" => 127
            ),

        1 => Array
            (
                "red" => 255,
                "green" => 255,
                "blue" => 255,
                "alpha" => 127,
            )



     );
于 2012-11-04T13:59:14.873 回答