Jump to content
php.lv forumi

array unikālās vērtības


crmind
 Share

Recommended Posts

Ir aptuveni šāds masīvs:

 

$size = array(
   "width"=>array(
       0=>123,
       1=>456,
       2=>789,
       3=>123,
       4=>456,
       5=>789
   ),
   "height"=>array(
       0=>456,
       1=>123,
       2=>987,
       3=>456,
       4=>654,
       5=>987
   )
);

 

Tātad $size[width][x] ir saistīts ar $size[height][x].

Nepieciešams no šāda masīva izvilkt vienādos izmērus, attiecīgi: 123x456,456x123,789x987,456x654.

 

Kāds būtu (efektīvākais) veids lai to panāktu?

Link to comment
Share on other sites

Nevis vienādos, bet unikālos izmērus, pareizi?

Ja tā, tad ej ciklā cauri un liec atrastos izmērus jaunā masīvā, pirms tam pārbaudod vai tie tur jau nav ielikti. Beigās arī dabūsi masīvu ar unikālajiem izmēriem.

Link to comment
Share on other sites

Nevis vienādos, bet unikālos izmērus, pareizi?

Ja tā, tad ej ciklā cauri un liec atrastos izmērus jaunā masīvā, pirms tam pārbaudod vai tie tur jau nav ielikti. Beigās arī dabūsi masīvu ar unikālajiem izmēriem.

 

Paldies, derēs šis variants.

Link to comment
Share on other sites

Šāds variants neder?

 

$out = array_combine($size['width'], $size['height']);

$sizes = array_unique($out);

 

upd, vajag, laikam otrādi... vispirms unique un tad combine...

 

Nē, tapēc ka pēc array_combine $size['width'] ir masīva atslēga un $size['height'] vērtība, bet array_unique izvelk tik unikālās masīva vērtības. Otrādāk ar nekas labs nesanāk.

Link to comment
Share on other sites

var arī rupji bez pārbaudīšanas vai masīvā tāds ir, vnk

$z = min(count($size['width']), count($size['height']));
$r = array();
for($i=0;$i<$z;$i++) {
 $r[$size['width'][$i].'x'.$size['height'][$i]] = array($size['width'][$i],$size['height'][$i]);
}
print_r($r);

Link to comment
Share on other sites

var arī rupji bez pārbaudīšanas vai masīvā tāds ir, vnk

$z = min(count($size['width']), count($size['height']));
$r = array();
for($i=0;$i<$z;$i++) {
 $r[$size['width'][$i].'x'.$size['height'][$i]] = array($size['width'][$i],$size['height'][$i]);
}
print_r($r);

 

Interesants variants, definēt/pārdefinēt mainīgo noteikti ir arī fiksāk nekā katrā ciklā if izmantot..

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...