I는 다음과 같습니다 문자열이 있습니다
[1=>2,3,4][5=>6,7,8][9=>10,11,12][13=>14,15][16=>17,18]
질문 : 당신이 그 문자열을 얻을 수있는 방법
이걸로?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
I는 다음과 같습니다 문자열이 있습니다
[1=>2,3,4][5=>6,7,8][9=>10,11,12][13=>14,15][16=>17,18]
질문 : 당신이 그 문자열을 얻을 수있는 방법
이걸로?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$str = "[1=>2,3,4][5=>6,7,8][9=>10,11,12][13=>14,15][16=>17,18]";
$str = explode("]", $str);
$finalResult = array();
foreach ($str as $element) {
if (!empty($element)) {
$element = substr($element, 1);
$element = explode("=>", $element);
// element[0] contains the key
$element[1] = explode(",", $element[1]);
$finalResult[$element[0]] = $element[1];
}
}
print_r($finalResult);
내가 함께 노력할 것입니다 :
$input = '[1=>2,3,4][5=>6,7,8][9=>10,11,12][13=>14,15][16=>17,18]';
$output = array();
preg_match_all('\[(\d+)=>([\d,]+)\]', $input, $matches);
foreach ($matches as $group) {
$output[$group[1])] = explode(',', $group[2]);
}
// and print result out:
foreach ($output as $key => $val) {
echo $key . '<br/>';
foreach ($val as $v) {
echo ' ' . $v . '<br/>';
}
}
이 코드 : 이것에
$input = '[1=>2,3,4][5=>6,7,8][9=>10,11,12][13=>14,15][16=>17,18]';
$regex = '~\[(?P<keys>\d)+=>(?P<values>(?:\d+,?)+)\]~';
$result = array();
if (preg_match_all($regex, $input, $matches)) {
foreach ($matches['keys'] as $key => $value) {
$result[$value] = explode(',', $matches['values'][$key]);
}
}
print_r($result);
결과 :
Array
(
[1] => Array
(
[0] => 2
[1] => 3
[2] => 4
)
[5] => Array
(
[0] => 6
[1] => 7
[2] => 8
)
[9] => Array
(
[0] => 10
[1] => 11
[2] => 12
)
[3] => Array
(
[0] => 14
[1] => 15
)
[6] => Array
(
[0] => 17
[1] => 18
)
)
<?php
$str = "[1=>2,3,4][5=>6,7,8][9=>10,11,12][13=>14,15][16=>17,18]";
$parts1 = explode("][",$str);
$parts1[0]=str_replace("[","",$parts1[0]);
$parts1[count($parts1)-1]=str_replace("]","",$parts1[count($parts1)-1]);
foreach($parts1 as $k=>$v){
$parts2[]=explode("=>",$v);
}
foreach($parts2 as $k=>$v){
echo "<div>".$v[0]."</div>";
foreach(explode(",",$v[1]) as $key=>$value){
echo "<div style='margin-left:20px'>".$value."</div>";
}
}
출력은 str_replace()
사용
다음과 같습니다
$dict = array(
'=>' => "\n\t",
',' => "\n\t",
'][' => "\n",
'[' => '',
']' => '',
);
echo str_replace(array_keys($dict), array_values($dict), $str);
원하는 결과를 줄 것이다.
솔루션을 제공해 주셔서 감사합니다. 그러나 배열에 있어야한다는 언급은하지 않았습니다. – kexxcream
아마도 reg 표현식과 그룹을 사용할 수 있습니다.하지만 Carsten이 말했듯이, 지금까지 어떤 것을 시도 했습니까? – BugFinder
아마도 유용하지 않을 수도 있습니다. 배열을 직렬화하기 위해 사용자 정의 형식을 사용하려고 시도한 것 같습니다. PHP serialize() 또는 json_encode()를보십시오. – AsTeR