Поиск в массиве значений полей для одного из них в drupal-6

Итак, у меня есть поле ссылки на узел, которое может иметь несколько значений, и я пытаюсь составить php-код, который проверит все значения этого поля на наличие определенного значения, которое я хочу, и напечатает текст, если он его найдет. Я хочу сделать это в поле зрения php, и это код, который я придумал до сих пор:

<?php
$node = node_load($data->nid);
print $data->nid . '<br>';
if(in_array('Yog [nid:1315]', $node->field_ref_oznajomenieni)) {
print 'yoog';
}
else {
print 'niemanic';
}
?>

Я немного плохо в PHP, но: node_load() отлично работает и $data->nid Возвращает идентификатор узла для каждой строки моего просмотра. Это подтверждается print $data->nid . '|';

Теперь, если предполагается, что функция if делает то, что я хочу, найдите в массиве значений что-то в поле ссылки на узел и напечатайте что-нибудь тоже. Я не уверен, должен ли я искать nid ссылочного узла, его заголовок или как я помещаю его в код, что бы я ни пытался, я получаю print 'niemanic'; из else{}

Как мне это сделать, пожалуйста?

1 ответ

Решение

Чтобы прояснить это: Код должен искать значение в поле ссылки на узел и печатать что-либо, только если оно найдено.

в одну сторону:

// less RAM usage
$node = node_load($data->nid);
$napis = '';
foreach ($node->field_ref_oznajomenieni as $value) {
if ($value[nid] == '1315') {
$napis = 'Yog';
}
// if (!($napis)) $napis = 'niemanic'; // for testing purpose
}
print $napis;

по-другому: (не проверено, может не хватать скобок)

// flattened matrix way
$plaskatablica = array();
foreach ($node->field_ref_oznajomenieni as $value) {
$plaskatablica[] = $value[nid];

if(in_array('1315', $plaskatablica)) {
print 'Yog';
}
}

Вот что я понял сам:

$node = node_load($data->nid);
$ii = 0;
foreach ($node->field_ref_oznajomenieni as $value) {
if(in_array('1315', array_values($node->field_ref_oznajomenieni[$ii]))) {
print 'Yog';
}
++$ii;
}

Это print_r($node->field_ref_oznajomenieni); вывод поля примера:

Array ( 
[0] => Array ( [nid] => 1320 ) 
[1] => Array ( [nid] => 1315 ) 
[2] => Array ( [nid] => 1518 ) 
[3] => Array ( [nid] => 1519 ) 
[4] => Array ( [nid] => 1525 ) 
)
Другие вопросы по тегам