Нужно сделать чтобы елементы масива не повторялись.

Главные вкладки

Аватар пользователя Ace1995 Ace1995 4 мая 2015 в 17:16

Есть масив с нодами в каждой ноды есть поле типа ссилка на материал(называетса Магазин) нужно вывести материалы с масива по 12 на странице так чтобы на одной странице не повторялись ноды с одинаковым полем Магазин.
Пример: Масив nid1 nid2 nid3... в ноды "nid1" есть поле "shop" его значение "nid10", в "nid2" есть поле "shop" его значение "nid11", а в "nid3" есть поле "shop" его значение тоже "nid10" мне надо чтобы на странице не повторялись значения полей магазин тоесть должны вевестись только ноды nid1 и nid2.
Вот наработка

<?php
function new_promo_get_nodes($added) {
    
//dsm($added);
    
$query db_select('node''n');
    
$query->fields('n',array('nid'));
    
$query->leftJoin('field_data_field_finished_action‎''ffa''ffa.entity_id = n.nid');
    
$query->leftJoin('field_data_field_promo_count_reviews''pcr''pcr.entity_id = n.nid');
    
$query->leftJoin('field_data_field_promo_shop''ps''ps.entity_id = n.nid');
    
$query->condition('type''promo');
    
$query->isNotNULL('field_promo_shop_nid');
    
$query->condition('n.nid'$added'NOT IN');
    
$query->orderBy('ffa.field_finished_action_value''ASC');
    
$query->orderBy('pcr.field_promo_count_reviews_value''DESC');
    
$query->range(012);
    
$select $query->execute()->fetchAll();

    return 

$select;
}

function 

new_promo_sql_view() {

    

$counts range(0500);
    
$chunk  array_chunk($counts12);
    
    static 
$result = array();
    static 
$added  = array('');

    foreach (

$chunk as $nodes) {
        
$i 1;
        
$nodes new_promo_get_nodes($added);

        foreach (

$nodes as $node) {
            
$node       node_load($node->nid);
            
$nid_to_add $node->field_promo_shop[LANGUAGE_NONE][0]['nid'];
            
            if (!
array_key_exists($node->nid$res)) {
                
$added[]  = $node->nid;
                
$res[$node->nid]  = $node->field_promo_shop[LANGUAGE_NONE][0]['nid'];
            }
        }
        
//$i++;
        //    if ($i >= 12) {
        //      $pages[] = $res;
        //        $i = 1;
        //    }
        //
        //$result[] = $added;
    
}
    
dsm($pages);
//dsm($added);
//dsm($res);
}?>