2016-07-29 6 views
1

У меня есть перетащить JS плагин, который сохраняет строки как:PHP Comma Разделитель или Explode для Foreach Loop

["кровать","бегемот","корм","валик","железосталь"] 

Я обнаружил, что я могу использовать str_replace в массив, чтобы удалить обе скобки и " Вст. вопрос, что теперь у меня есть то, что у меня есть недопустимый аргумент для прохождения через петлю Еогеаспа, поскольку он не может различить каждое отдельное слово.

$bar = '["кровать","бегемот","корм","валик","железосталь"]'; 
$new_str = str_replace(str_split('[]"'), '', $bar); 

foreach($new_str as $arr){ 

    echo $arr; 

} 

Таким образом, данные в настоящее время выведенное выглядят следующим образом (если я эхо перед циклом foreach):

кровать,бегемот,корм,валик,железосталь 

Есть ли в любом случае, когда я могу использовать запятую в качестве делиметра, чтобы передать это через foreach, каждое слово является его собственной переменной?

Есть ли более простой способ сделать это? Любое руководство очень оценили!

+8

является то, что JSON? вы должны, вероятно, просто 'json_decode()' it. –

+0

'foreach (explode (',', $ new_str) as $ arr)' Но, как и выше, js использует регулярный массив js. Если вы покажете, как вы передаете это на php, будет лучшее решение – Steve

ответ

2

Технически, вы можете использовать explode, но вы должны признать, что вы получаете JSON, так что вы можете просто сделать это:

$bar = '["кровать","бегемот","корм","валик","железосталь"]'; 
$new_str = json_decode($bar); 

foreach($new_str as $arr){ 

    echo $arr; 

} 

Не странно разбирать скобки, запятые или что-то еще.

+0

Это прекрасно, подумал, что, вероятно, был более простой способ - Спасибо! –

2

Функция, в которой вы нуждаетесь, является взрывом(). Посмотрите здесь: http://www.w3schools.com/php/func_string_explode.asp

Посмотрите на следующий код:

$bar = '["кровать","бегемот","корм","валик","железосталь"]'; 
$new_str = str_replace(str_split('[]"'), '', $bar); 
$exploding = explode(",", $new_str); 

foreach($exploding as $token){ 

    echo $token; 

} 
1
<?php 
    $aa = '["кровать","бегемот","корм","валик","железосталь"]'; 
    $bb = json_decode($aa); 
    foreach($bb as $b) 
    echo $b."\n"; 
?> 

и результаты есть,

кровать 
бегемот 
корм 
валик 
железосталь 
2

Похоже, у вас есть строки JSON и хотите, чтобы преобразовать его в массив. Есть несколько способов сделать это. Вы можете использовать explode так:

$bar = '["кровать","бегемот","корм","валик","железосталь"]'; 
$new_str = str_replace(str_split('[]"'), '', $bar); 
$new_str_array = explode($new_str); 

foreach($new_str_array as $arr){ 

    echo $arr; 

} 

или вы могли бы использовать json_decode так:

$bar = '["кровать","бегемот","корм","валик","железосталь"]'; 
$new_str_array = json_decode($bar); 

foreach($new_str_array as $arr){ 

    echo $arr; 

}