Php 将foreach结果拆分为可重用变量
我有一个foreach函数:Php 将foreach结果拆分为可重用变量,php,foreach,split,var,Php,Foreach,Split,Var,我有一个foreach函数: foreach ($result as $result) { echo "<a href='" . $result . "'>" . $result . "</a><br>"; } 我尝试了explode和split函数,但这会不断返回以下内容的完整列表: array array 我想要实现的是让foreach$result有一个变量,该变量包含单词/名称,介于第一组[]和第二组[]之间,然后是第三个变量,该变量包含最后一
foreach ($result as $result) {
echo "<a href='" . $result . "'>" . $result . "</a><br>";
}
我尝试了explode
和split
函数,但这会不断返回以下内容的完整列表:
array
array
我想要实现的是让foreach$result
有一个变量,该变量包含单词/名称,介于第一组[]
和第二组[]
之间,然后是第三个变量,该变量包含最后一组.
和.wav
之间的所有内容。因此它将有以下变量:
$result_classname = spacer
$result_parent = timespacer
$result_name = fiveseconds
$result = [spacer]_[timespacer]_fiveseconds.wav
这将允许我做:
foreach ($result as $result) {
echo "<a class='" . $result_classname . "' href='" . $result . "'>" . $result_name . "</a><span>" . $result_parent . "</span><br>";
}
foreach($result as$result){
回显“$result\u parent.”
;
}
如何实现这一点?首先,您不希望在
foreach
中使用相同的变量:
foreach ($result as $result) {
使用不同的变量:
foreach ($result as $value) {
然后,这里有一个非正则表达式的方法来处理这个问题:
list($classname, $parent, $name) = explode('_', $value);
$classname = trim($classname, '[]');
$parent = trim($parent, '[]');
$name = pathinfo($name, PATHINFO_FILENAME);
- 在下划线上爆炸
- 从每一端修剪
字符[]
- 获取不带扩展名的文件名
preg_match('/\[([^\]]+)\]_\[([^\]]+)\]_([^.]+).*/', $value, $matches);
然后使用
print\r($matches)
查看要使用哪些变量($matches[0]
等)。首先,您不希望在foreach中使用相同的变量:
foreach ($result as $result) {
使用不同的变量:
foreach ($result as $value) {
然后,这里有一个非正则表达式的方法来处理这个问题:
list($classname, $parent, $name) = explode('_', $value);
$classname = trim($classname, '[]');
$parent = trim($parent, '[]');
$name = pathinfo($name, PATHINFO_FILENAME);
- 在下划线上爆炸
- 从每一端修剪
[]
字符
- 获取不带扩展名的文件名
或者一个简单的正则表达式:
preg_match('/\[([^\]]+)\]_\[([^\]]+)\]_([^.]+).*/', $value, $matches);
然后使用print\r($matches)
查看要使用的代码($matches[0]
,等等)。嘿,我刚刚试过你的代码!它正在部分发挥作用。我确信是我做错了什么。我将您的代码添加到foreach
中,在echo
上方,它现在正确显示了名称,但父类名称不正确。我将上传的代码在主要文章,因为它是现在。所以它比我的胡言乱语更容易理解;-)我犯了愚蠢的错误。检查新的trim()
行。我选择了preg匹配,它工作得非常完美。也尝试了其他方法,但链接给了我数组
,而不是链接。我要感谢你重做了你最初的回答,显然是你帮助我解决了这个问题。非常感谢你!还要用那些新的trim()
行来尝试它。另外,确保在foreach和之后的所有行中使用$value
。嘿,我刚刚尝试了你的代码!它正在部分发挥作用。我确信是我做错了什么。我将您的代码添加到foreach
中,在echo
上方,它现在正确显示了名称,但父类名称不正确。我将上传的代码在主要文章,因为它是现在。所以它比我的胡言乱语更容易理解;-)我犯了愚蠢的错误。检查新的trim()
行。我选择了preg匹配,它工作得非常完美。也尝试了其他方法,但链接给了我数组
,而不是链接。我要感谢你重做了你最初的回答,显然是你帮助我解决了这个问题。非常感谢你!还要尝试使用那些新的trim()
行。另外,确保在foreach和之后的所有行中使用$value
。