php - готовые решения для типовых задач

Рекурсивное удаление содержимого директории

    
function rm($dir) {
    if ($objs = glob($dir."/*")) {
       foreach($objs as $obj) {
         is_dir($obj) ? rm($obj) : unlink($obj);
       }
    }
    rmdir($dir);
  }
echo __DIR__;

rm('dir');  
    

Факториал числа:

    
function factorial($n)
{
 if ($n == 0) return 1;
    return $n * factorial($n-1);
}
$result = factorial(10);
print_r( "10! = " . $result);
    

Удаление повторяющихся элементов:

    
// delete dublicate products
                    $keys=array();
                    foreach($data as $k=>$val) {
                        if(array_key_exists($val['product_id'],$keys)) {
                            unset($data[$k]);
                        } else {
                            $keys[$val['product_id']]=1;
                        }
                    }
//end foreach for delete dublicate products  var_dump($data)

Где product_id - ключ по которому чистим
$data - входной массив  вида:

$data = array(
            [0] => Array
                (
                    [product_id] => 2174
                )

            [1] => Array
                (
                    [product_id] => 2175
                )

            [2] => Array
                (
                    [product_id] => 2584
                )

            [3] => Array
                (
                    [product_id] => 2588
                )
            )


    

MODX получить id шаблона и массовая замена шаблона дочерних ресурсов

    
/******  1  ********/

$res = $modx->getObject('modResource',172);
return $res->get('template');

/******  2  ********/


$resources = $modx->getCollection('modResource',array('parent' => 19));   //берем ресурсы из категории "19"
foreach ($resources as $res) {
    $res->set('template', 21);                                             //устанавливаем им шаблон "3"
    $res->save();                                                         //сохраняем...
}
    
Тэги:

Комментарии (0)


Оставить комментарий

Success/Error Message Goes Here

TOP