Archives du mot-clef find

php array recursive find function

<?php
 
$array1 = array(
    0 => array(
        'id' => 1,
        'name' => 'HiO'
    ),
    1 => array(
        'id' => 2,
        'name' => 'Hyun'
    ),
    'key0' => array(
        'id' => 3,
        'name' => 'test'
    )
);
 
 
$array2 = array(
    0 => array(
        'id' => 15, 
        'name' => 'Plop'
    ),
    1 => array(
        'id' => 4,
        'name' => 'Hyun'
    ),
    2 => array(
        'id' => 56,
        'name' => 'Hehe'
    ),
    3 => array(
        0 => array(
            'id' => 10,
            'name' => 'Hi0',
            'key' => array(
                'id' => 1,
                'name' => 'HiO'
            )
        )
    )
);
 
function find($index, $search, $array) {
    foreach($array as $key => $value) {
        if(is_array($value)) {
            if(find($index, $search, $value)) {
                return true;
            }
        }
        if($key == $index && $value == $search)
            return true;
    }
    return false;
}
 
$not_found_array = array();
$found_array = array();
foreach($array1 as $key => $value) {
    if($find = find('name', $value['name'], $array2)) {
        echo $value['name'].' found !<br />';
        $found_array[] = $value;
    } else {
        echo $value['name'].' not found !<br />';
        $not_found_array[] = $value;
    }
}
 
var_dump($not_found_array, $found_array);

BASH Comment supprimer des repertoires vide

Une question simple avec une réponse tout aussi simple, comment qu’on fais pour virer un nombre N de répertoire vide sans devoir faire un ‘rm -rf’ a la main pour chaque répertoire.

Le find qui sert a supprimer tous les rpertoires vide d’un repertoire

find . -maxdepth 1 -type d -empty -exec sh -c 'rm -rf "{}" && echo "{}" deleted' \;

Je crée des répertoires bidon pour les tests :p

hio@fantasy:~/test$ mkdir {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,notemptydir} 
hio@fantasy:~/test$ echo maisblu > notemptydir/testfile
hio@fantasy:~/test$ ls -l
total 88
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 0
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 1
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 10
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 11
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 12
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 13
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 14
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 15
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 16
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 17
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 18
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 19
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 2
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 20
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 3
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 4
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 5
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 6
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 7
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 8
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 9
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 notemptydir

On execute le find ^^

 
hio@fantasy:~/test$  find . -maxdepth 1 -type d -empty -exec sh -c 'rm -rf "{}" && echo "{}" deleted' \;
./16 deleted
./10 deleted
./14 deleted
./15 deleted
./4 deleted
./17 deleted
./19 deleted
./2 deleted
./1 deleted
./7 deleted
./13 deleted
./3 deleted
./20 deleted
./12 deleted
./0 deleted
./18 deleted
./6 deleted
./8 deleted
./11 deleted
./5 deleted
./9 deleted
hio@fantasy:~/test$ ls -l
total 4
drwxr-xr-x 2 hio hio 4096 2009-06-15 22:09 notemptydir

Voila rien de bien sorcier ^^