2013-10-25 2 views
-3

Как получить определенную строку из массива, я дал пример массива, как показано нижекак искать определенную строку в массив в PHP

Array 
(
    [0] => Paper:300gsm Silk 
    [1] => Lamination:Gloss 
    [2] => Despatch:Standard 5 day 
) 

мне нужно искать, если Despatch доступен в массиве и, если возможно, то получите значение его, что после того, как дал : и его Standard 5 day

там не фиксируют последовательность в массиве, а также там не исправить строку как Despatch:Standard 5 day это может быть изменение как Despatch:Standard 2 day, Despatch:Standard 5 day или может быть Despatch:24 hours

+2

Ваши downvotes являются потому, что вы не показали свой подход –

+0

Используйте 'array_search', когда вы найдете то, что вы хотите, вы нарушаете строку. http://www.php.net/manual/en/function.array-search.php –

+0

в поиске нет исправленной строки 'Отправление: стандартный 5 дней' это может быть' Отправление: стандартный 6 дней' или может быть ' Отправка: 24 часа –

ответ

1

Использование array_walk() Функция с обратным вызовом. Есть подстроки поиска внутри обратного вызова

0

Вы можете использовать Еогеасп и взрываются

foreach ($array as $value) { 
    $exp = explode(':', $value); 
    if ($exp[0] == 'Despatch') return $exp[1]; 
} 
+0

'первый (первый) параметр explode() - разделитель –

+0

спасибо, только что заметил мою ошибку. – evuez

2

Прежде всего, посмотрим на ассоциативные массивы. Тогда ваш массив выглядит следующим образом:

$myArray 
(
    ['Paper'] => 300gsm Silk 
    ['Lamination'] => Gloss 
    ['Despatch'] => Standard 5 day 
) 

А вы можете назвать это так, то:

$value = $myArray['Despatch'] 
+0

Я не могу понять ассоциативные массивы. :( –

+0

Тогда вы должны использовать методы, которые уже сказали вам здесь. Но я могу только рекомендовать вам попробовать изучить его, одно из самых больших преимуществ, которое предлагает PHP, и может сделать вашу жизнь намного проще.;) –

0

Является ли это результат, который вы хотите?

$arr = array("Paper:300gsm Silk", 
      "Lamination:Gloss", 
      "Despatch:Standard 5 day" 
      ); 

$searchword = "Despatch"; 
$matches = array_filter($arr, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); }); 


$res=substr($matches[2],9); 
echo $res; 
+0

его дать синтаксическую ошибку, неожиданный T_FUNCTION' –

+0

Попробуйте эту ссылку: http://codepad.viper-7.com/m408ky – Duikboot

Смежные вопросы