2013-12-02 12 views
1

Я хочу получить все данные массива, где ключи имеют символы ch с самого начала. Как мне это получить?Получить все данные массива с определенной строкой

Array ([editpostid] => 0 [editpostcat] => 1 [ch114] => on [ch115] => on) 

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

Как разместить все данные с помощью «ch» в начале ключей на отдельный массив?

ответ

1

ли как этот

<?php 
$arr = array('ch'=>10,'abch'=>20,'ch23'=>45); 
$newarr=array(); 
foreach($arr as $k=>$v) 
{ 
if(substr(strtolower($k),0,2)=='ch') 
{ 
array_push($newarr,$v); // Make use of this if you just need the values 
//$newarr[$k]=$v; // Uncomment this and comment above statement, if you need the keys too 
} 
} 
print_r($newarr); 

ВЫХОД:

Array 
(
    [0] => 10 
    [1] => 45 
) 
+1

', который имеет символы 'ч' с самого начала. ': Это приведет к тому, что ch имеет 'ch' где угодно. Если этого не хотят, потому что они перечисляют противоречивые требования в вопросе –

+0

@Hanky ​​웃 Panky, Хороший вывод;). Да, я сейчас редактировал. –

1
$charray=array(); 
foreach($yourarray as $key=>$value){ 
     if(preg_match("/^ch/",$key)){ 
      $charray[$key]=>$value; 
     } 
    } 
//$charray is the new arrayas you asked for 
echo implode(',',$charray); 

см official documentation for preg_match для получения дополнительной информации

+0

Это устарело ... – sectus

+0

@sectus .. Спасибо, что сообщили мне .. я изменил его :) –

+0

Здесь нет необходимости в регулярном выражении, избегайте везде, где это возможно. http://bradt.ca/blog/stop-avoiding-regular-expressions-damn-it/ –

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