【问题标题】:PHP - Exploding each item in an array created by explodePHP - 爆炸由explode创建的数组中的每个项目
【发布时间】:2015-06-05 09:53:21
【问题描述】:

我的代码是...

$string ="foo:bar,bar,bar|foo2:bar2,bar2,bar2";

$first_array = explode("|", $string);

function split(&$block) {

$block = explode(":", $block);

}

array_walk($first_array, "split");

echo $block["0"]["0"];
echo "<br />";
echo $block["0"]["1"];

?>

感谢您迄今为止的帮助。从我收集的内容来看,这应该是所提供代码的干净版本。这不会回显任何内容,提供的代码也不会。

【问题讨论】:

  • $final_array 将是一个数组数组。 echo $result 只会吐出单词Array,而不是数组的内容。
  • 也许可以尝试使用更合理的分隔符,例如 &lt;delim1&gt;&lt;delim2&gt;,而不是 ?!#@^&amp;$%@#&amp;*%&amp;@#*&amp;^%,您可能手动输入这些分隔符并在某处打错了所有内容。
  • 还要让你的变量名保持一致。是$city_array还是$cityarray...
  • “我不想使用一百万个列和表,所以我想拆分我的结果” 等等,你想将关系数据存储在关系数据库中,但您不想以关系方式组织数据?我是不是误会了什么?

标签: php arrays loops explode


【解决方案1】:

这样就可以了:

$string ="foo:bar:bar:bar|foo2:bar2:bar2:bar2";

// first explode on |
$first_array = explode("|", $string);
// this function go on each lines of an array and transform each by a function
array_walk($first_array, function(&$item) {
         // so for each line explode with ':' as delimiter
         $item = explode(':', $item);
});

// To check all lines of the array
foreach($first_array as $line_array) {
     //my code for each sub-array
}

// To get only the last (second)
$second_sub = array_pop($first_array);

// if you want one dimension with all exploded you can use
// this function split with a regexp pattern
// "/[\|:,]+/" foreach "|" or ":" or ","  split the string
preg_split("/[\|:,]+/", $string);

【讨论】:

  • 你能给我解释一下语法吗?谢谢!
  • 我弄清楚了语法。然而,这只是成功的一半。如何从数组的第二维中提取信息?谢谢。
  • 刚刚编辑了我的代码,使用方法来访问每一行和只获取最后一行的方法
【解决方案2】:

不要使用 $block,因为它是在另一个作用域中定义的,而且你不能将“split”作为你的函数的名称,因为它是一个现有的 php 函数

$string ="foo:bar,bar,bar|foo2:bar2,bar2,bar2";

$first_array = explode("|", $string);

function mysplit(&$block) {

$block = explode(":", $block);

}

array_walk($first_array, "mysplit");

echo $first_array[0][0];
echo "<br />";
echo $first_array[0][1];

【讨论】:

    猜你喜欢
    • 2019-07-26
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多