2016-07-20 4 views
0

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

Пример, если у меня есть массив с $cuisines_category:

string(26) "Breakfast/Cake - Accept voucher/New Restaurant""

из этого массива это имеет 2 содержимого данных, которые, как Breakfast/Cake$cuisines_name_all и Accept voucher/New_Restaurant, как $facility_name_all.

До сих пор я могу вернуть взрываются данные, которые этот следующий код:

$split=array_map('trim', explode("-",$cuisines_category)); 
$cuisines_name_all = (isset($split[0]) === TRUE ? $split[0] : 0); 
$facility_name_all = (isset($split[1]) === TRUE ? $split[1] : 0); 

$cuisines_name = explode("/", $cuisines_name_all); 
$facility_name = explode("/", $facility_name_all); 

Моя проблема в том, как насчет того, если содержание массива $cuisines_category только для $facility_name_all в этом массиве:

string(30) "Online payment available/Deals"

поэтому я изменяю мой взрывоопасный код с этим кодом:

$split=array_map('trim', explode("-",$cuisines_category)); 
$cuisines_name_all = (isset($split[0]) === TRUE ? $split[0] : 0); 
if(isset($split[1])){ 
    $facility_name_all = $split[1]; 
}else{ 
    $facility_name_all = $split[0]; 
} 

$cuisines_name = explode("/", $cuisines_name_all); 
$facility_name = explode("/", $facility_name_all); 

Да я могу вернуть $facility_name, но $cuisines_name имеет одинаковое содержание с $facility_name, которые $cuisines_name должны быть нет содержания

Потому что я должен вернуться, что $cuisines_name и $facility_name для получения новых данных из базы данных.

ребята вы знаете, как различать данные, если implode - не выходит?

+0

во втором случае, что, как ожидается результат? –

+0

Извините, я не понимаю, что вы пытаетесь сказать. можете ли вы объяснить больше @Anant – Kelvin

+0

'string (30)« Доступен онлайн-платеж/Сделки »' в этом случае, каков ваш ожидаемый результат в терминах '$ object_name' и' $ cuisines_name'? –

ответ

2

Это то, что вы ищете?

Сценарий 1

$cuisines_category = "Breakfast/Cake - Accept voucher/New Restaurant"; 

$split = array_map('trim', explode("-", $cuisines_category)); 

$cuisines_name_all = (count($split) > 1) ? $split[0] : 0; 
$facility_name_all = (count($split) > 1) ? $split[1] : $split[0]; 

$cuisines_name = explode("/", $cuisines_name_all); 
$facility_name = explode("/", $facility_name_all); 

Выходной

cuisines_name: Array ([0] => Breakfast [1] => Cake) 

facility_name: Array ([0] => Accept voucher [1] => New Restaurant) 

Сценарий 2

$cuisines_category = "Accept voucher/New Restaurant"; 

$split = array_map('trim', explode("-", $cuisines_category)); 

$cuisines_name_all = (count($split) > 1) ? $split[0] : 0; 
$facility_name_all = (count($split) > 1) ? $split[1] : $split[0]; 

$cuisines_name = explode("/", $cuisines_name_all); 
$facility_name = explode("/", $facility_name_all); 

Выход

cuisines_name: Array ([0] => 0) 

facility_name: Array ([0] => Accept voucher [1] => New Restaurant) 
+0

и как насчет' '$ cuisines_category', который он просто содержит для' $ cuisines_name_all'? – Kelvin

+0

Нет, тогда он не будет работать. имя кухни перейдет в массив 'object_name'. В вопросе вы упомянули две возможности: 1. строка содержит имена обеих кухонь и имена объектов 2. существует только имя объекта. –

+1

Теперь, если ваша строка может содержать как средство, так и кухню, либо одну из них, то в строке вы также должны добавить тип. Потому что сейчас мы не можем обнаружить, что это кухня или объект. –