我在MySql中有一个列配置文件
firstset=one;two;three|secondset=blue;yellow;red;|thirdset=width;height;|
(例子)我需要从yellow
获取secondset
到变量
我写的:
... MySql query etc ...
...
if ($r_select['profile'] != null)
{
$resultSelect = $r_select['profile'];
$resultArray = explode('|', $resultSelect);
所以现在我有:
resultArray (
[1] firstset=one;two;three
[2] secondset=blue;yellow;red;
[3] thirdset=width;height;
)
我需要找到resultArray[]
secondset=
中的位置,然后将其保存在变量中 - 我想要
$found = "secondset=blue;yellow;red;"
我知道如何explode
变量,但我无法在数组[]
答案 0 :(得分:1)
试试这个:
secondset=blue;yellow;red;
结果:
<?php foreach ($articles as $article): ?>
<!-- HTML code here -->
<?= h($article->users->name) ?>
<!-- HTML code here -->
<?php endforeach; ?>
答案 1 :(得分:0)
你看起来像这样吗。
$result = Array (
'1' =>'firstset=one;two;three',
'2' =>'secondset=blue;yellow;red;',
'3' =>'thirdset=width;height;'
);
foreach($result as $key=>$value){
if(strpos($value,'yellow')){
$secondset = $value;
break;
}
}
$result1 = explode('=', $secondset);
$result2 = explode(';', $result1[1]);
list($a,$b,$c) = $result2;
echo $b;
答案 2 :(得分:0)
没有foreach的另一种解决方案:
if duplicate_session?
sign_out(current_user)
redirect_to after_sign_out_path_for(current_user),
alert: 'Duplicate Login Detected'
end
然后你可以在$ resultString上应用你的爆炸。如果你有几个结果,比如你的数组中有很多字符串,其中包含“secondset”,你就可以在数组$ result中处理它们。
$resultArray = [
'firstset=one;two;three',
'secondset=blue;yellow;red;',
'thirdset=width;height;',
];
// all the results matching secondset
$result = preg_grep('/.*secondset.*/', $resultArray);
// if you have only one result
$resultString = reset($result);
答案 3 :(得分:0)
您可以使用array_filter函数和自定义匿名函数。
$resultArray = array("firstset=one;two;three", "secondset=blue;yellow;red;", "thirdset=width;height;");
$matches = array_filter($resultArray, function ($haystack) {
return strpos($haystack, 'secondset=') !== false ? true : false;
});
// output => Array ( [1] => secondset=blue;yellow;red; )
print_r($matches);
获取所有数组键(在您的情况下只有一个):
// output => Array ( [0] => 1 )
print_r(array_keys($matches));