Получить значение после и перед определенным символом

#php #substring

#php #подстрока

Вопрос:

Как получить некоторые значения после определенного символа и перед определенным символом и поместить в массив в php

 $str = "[{"m":[{"a":1,"u":34,"n":"Administrator"}]},
{"m":[{"a":2,"u":3,"n":"Member"}]},
{"m":[{"a":3,"u":44,"n":"Co-Admin"}]},
{"m":[{"a":2,"u":24,"n":"Member"}]},
{"m":[{"a":2,"u":75,"n":"Member"}]}]"
  

Я хочу получить все значения между "u": и , в массиве, возможно, результат такой {'34','3','44','24',75}

Комментарии:

1. Почему бы не использовать json_decode() ?

2. используйте json_decode($str) и в цикле foreach принимайте значения типа echo $str[‘m’][‘u’] .

Ответ №1:

вы можете использовать json_decode для получения значения и сохранения в массив.

Пример-

 $str = '[{"m":[{"a":1,"u":34,"n":"Administrator"}]},{"m":[{"a":2,"u":3,"n":"Member"}]},{"m":[{"a":3,"u":44,"n":"Co-Admin"}]},{"m":[{"a":2,"u":24,"n":"Member"}]},{"m":[{"a":2,"u":75,"n":"Member"}]}]';

 $getArrayJson = json_decode($str);

 //echo "<pre>"; print_r($getArrayJson);

 $requireValueArray = "";
foreach ($getArrayJson as $getkey => $getvalue) {
    $requireValueArray[] = $getvalue->m[0]->u;

}


$yourjsonDecodeArray = json_encode($requireValueArray);
  

Комментарии:

1. как распечатать или повторить декодирование массива json, сэр? в {’34’,’3′,’44’,’24’,75} @ шубхам715

2. привет, @wee.ryo json_encode добавьте фигурные скобки ({) в многомерный массив, но если вы хотите добавить в свой массив, вы можете сделать ` $yourjsonDecodeArray = json_encode($requireValueArray); $yourjsonDecodeArray = str_replace(«[«, «{«, $ yourjsonDecodeArray); $yourjsonDecodeArray = str_replace(«]», «}», $yourjsonDecodeArray); ` а также не забудьте принять ответ, если это полезно для вас 🙂

3. подождите .. я имею в виду, если я вызову echo arrayjson[0], результат отобразится 34

4. вы должны сначала json_decode вашего массива и избегать, если вы уже это сделали, тогда вы можете выполнить echo arrayjson[0];

Ответ №2:

я получаю решение

 $json = json_decode($str);
foreach ($json as $jkey) {
    foreach($jkey->m as $row)
    {
        $arrayjson[] = $row->u;
    }
}
  

в echo $ arrayjson [0] появится 34, $ arrayjson [1] появится 3 и т. Д. Спасибо @shubham715 за лампочку в моем сознании, хе-хе 🙂