Получение идентификатора из массива (PHP) - PullRequest
0 голосов
/ 31 октября 2011

У меня есть такой массив:

Array
(
    [0] => Array
        (
            [0] => Sales
            [1] => Offices
            [2] => Products
        )
    [1] => Array
        (
            [0] => Cars
            [1] => Trucks
            [2] => Management
        )
)

Все эти "Автомобили", "Грузовики" и т. Д. Являются ссылками <a href="/mysite/catalog/63">Cars</a> и т. Д. Теперь мне нужно получить этот идентификационный номер по этим ссылкам? Но я довольно новичок в PHP, и я не знаю, как его получить. Цикл Foreach и функция сброса или что-то подобное?

Это на drupal и ubercart, если нужна эта информация.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

Как это:

foreach($yourarry as $arr2){
    foreach($arr2 as $id=>$text){
        echo $id;
        echo $text;
    }
}
1 голос
/ 31 октября 2011

Я думаю, вы ищете петлю foreach с preg_match и explode() для извлечения ID:

$regex = '/href="([^"]+)/i';
foreach ($arr as $item) {
  foreach ($item as $html) {
    if (preg_match($regex, $html, $matches)) {
      $id = end(explode('/', $matches[1]));
      // For the string '<span class="field-content"><a href="/mysite/catalog/32">Cars/<a></span>' $id is equal to 32
    }
  }
}
0 голосов
/ 31 октября 2011

a href = "/ mysite / catalog / 63"

... подразумевает, что 63 является идентификатором для автомобилей - но в вашем образце массива нет ни ключа с именем idни значение 63 - вы не можете написать код, чтобы найти значение, которого там нет.

Если вы хотите извлечь число из текста ссылки, взгляните на различные функции разбора строк,простейшие функции - strtok, explode или preg_match.

...