以下是我在php中的内容:
我需要爆炸给定的变量
$a = "hello~world";
我需要爆炸
$first = "hello";
$second = "world";
我该怎么做?
这是我到目前为止所尝试的内容。
<?php
$str = "a~b";
$a = (explode("~",$str));
$b = (explode("~",$str));
echo explode('.', 'a.b');
?>
我知道我做错了。我的错误是什么?如何解决这个问题?
答案 0 :(得分:5)
如果您知道您希望返回的变量数量(例如,在这种情况下为2),您可以直接将它们分配到list
:
list($first, $second) = explode('~', $a);
// $first = 'hello';
// $second = 'world';
答案 1 :(得分:2)
Explode函数将返回一个包含“explosed”元素的数组
所以改变你的代码如下(如果你知道只有两个元素存在)
list($a, $b) = explode('~', $str);
//You don't need to call explode one time for element.
否则,如果您不知道元素的数量:
$exploded_array = explode('~', $str);
foreach ($exploded_array as $element)
{
echo $element;
}
答案 2 :(得分:0)
您的代码应触发包含调试信息的明确错误消息:
注意:数组转换为字符串
......在这一行:
echo explode('.', 'a.b');
...最后打印出来:
Array
如果您已经看过它,我想您不会忽略这些有用的信息,因此您可能还没有配置您的PHP开发框来显示错误消息。最简单的方法是,在安装PHP时,通过复制php.ini
而不是php.ini-development
来获取php.ini-production
文件。如果您使用的是第三方版本,只需调整error_reporting
和display_errors
指令即可。
关于错误,您必须了解数组是复杂的数据结构,而不是标量值。您无法使用echo
按原样打印数组。在开发阶段,您可以使用var_dump()
(与任何其他变量一样)进行检查。
答案 3 :(得分:0)
explode返回一个数组。 explode会使用给定的字符(这里是〜)将给定的字符串分解为部分,并返回包含爆炸部分的数组。
$a = "hello~world";
$str_array = explode("~",$a);
$first = $str_array[0];
$second = $str_array[1];
echo $first." ".$second;