BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> PHP array
xhister
Публикувано на: 06-01-2017, 18:10
Quote Post



Име: Петър
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 09.09.16



Здравейте,
имам един арей в ПХП и искам така да направя, че накрая този арей да няма в себе си други ареи, а да е просто един със съответните ключове и стойности, но не знам как да го направя.
Търсих навсякъде, дори и в ПХП документацията, но нищо не намирам.
Ето го кода:
CODE

<?php
      $image1 = "tests/hello.jpg";
      $image2 = "tests/hel.jpg";
      $arraypush = array("{$image1}", "{$image2}");
      for($i=0; $i<count($arraypush); $i++){
            
            $array = array("image{$i}"=>"{$arraypush[$i]}");
            foreach($array as $key=>$value){
                  echo "<img src=".$value." alt=\"hello\" width=\"100\" height=\"100\"><br><br>";
            }
            //var_dump($array);
      }
?>

Благодаря за помоща!
PMEmail Poster
Top
xhister
Публикувано на: 06-01-2017, 18:44
Quote Post



Име: Петър
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 09.09.16



Поогледах в ПХП документацията и намерих нещо, само че проблемът е: Warning: array_combine(): Both parameters should have an equal number of elements in D:\xampp\htdocs\array.php on line 8.
Ето го кода:
CODE

<?php
      $image1 = "tests/hello.jpg";
      $image2 = "tests/hel.jpg";
      $arraypush = array("{$image1}", "{$image2}");
      for($i=0; $i<count($arraypush); $i++){
            
            $array = array("{$i}"=>"image{$i}");
            $newarray = array_combine($array, $arraypush);
            print_r($newarray);
            //var_dump($array);
      }
?>
PMEmail Poster
Top
RoYaL
Публикувано на: 06-01-2017, 18:55
Quote Post



Име:
Група: Потребител
Ранг: Старо куче

Мнения: 776
Регистриран на: 21.08.05



Ами първия ти масив ($arraypush) не е асоциативен

$arraypush = ['key'=>'value']
и после във foreach-a:
$arraypush['newKey']= 'anotherValue';
PMEmail Poster
Top
xhister
Публикувано на: 06-01-2017, 19:03
Quote Post



Име: Петър
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 09.09.16



Не мога да те разбера. Може ли пример, ако нямаш нищо против.
PMEmail Poster
Top
xhister
Публикувано на: 06-01-2017, 19:16
Quote Post



Име: Петър
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 09.09.16



Грешката, която ми излиза след loop-a е:
Warning: array_combine(): Both parameters should have an equal number of elements in D:\xampp\htdocs\array.php on line 9.
PMEmail Poster
Top
relax4o
Публикувано на: 06-01-2017, 19:57
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1060
Регистриран на: 04.04.07



QUOTE (xhister @ 06-01-2017, 19:03)
Не мога да те разбера. Може ли пример, ако нямаш нищо против.

Не можеш да комбинираш два масива с различна големина.

Асоциативния масив има ключ и стойност array("key" => "value"), което при теб е $array масива(който де факто има само един елемент)
$arraypush не е асоциативен масив и там си сложил 2 елемента, а array_combine изисква двата масива да са с еднаква дължина.

Вероятно искаш това да направиш:

CODE

$newarray = array();

for ( $i = 0; $i < sizeof($arraypush); $i++ ) {
       $newarray[$i] = $arraypush[$i];
       // или така $newarray[] = $arraypush[$i]
}


или така

CODE

$newarray = array();

foreach( $arraypush as $value ) {
     $newarray[] = $value;
}


Това мнение е било редактирано от relax4o на 06-01-2017, 19:59


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
xhister
Публикувано на: 06-01-2017, 20:11
Quote Post



Име: Петър
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 09.09.16



Въпросът ми е как бих могъл като ключ да сложа image($i), където $i се увеличава с 1.

Това мнение е било редактирано от xhister на 06-01-2017, 20:14
PMEmail Poster
Top
relax4o
Публикувано на: 06-01-2017, 20:16
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1060
Регистриран на: 04.04.07



Да ти имам и обясненията. И не ти разбирам логиката, но ти си знаеш.


CODE

$newarray = array();

for( $i = 0; $i < sizeof($arraypush); $i++ ) {
      $newarray['image'.$i] = $arraypush[$i];
}


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
xhister
Публикувано на: 06-01-2017, 20:31
Quote Post



Име: Петър
Група: Потребител
Ранг: Посетител

Мнения: 91
Регистриран на: 09.09.16



Добре, тогава.Ще се опитам да обясня по по-прост начин. Когато изпълня кода в браузера ми излиза това:
array(1) { ["image0"]=> string(15) "tests/hello.jpg" } array(2) { ["image0"]=> string(15) "tests/hello.jpg" ["image1"]=> string(13) "tests/hel.jpg" }

Целта ми е да махна тези array(1) и array(2) и вместо тях да ми излизат само ключовете и стойностите. Това е, което искам. Мислех си, че няма да е толкова сложно, но явно съм грешал.
Надявам се да ме разберете какво искам.
PMEmail Poster
Top
erazor
Публикувано на: 06-01-2017, 20:56
Quote Post



Име: Димитър
Група: Потребител
Ранг: Редовен член

Мнения: 558
Регистриран на: 26.06.07



CODE

foreach($arraypush AS $key => $value){
   echo $key;
   echo $value;
}


http://php.net/manual/en/control-structures.foreach.php

Това мнение е било редактирано от erazor на 06-01-2017, 20:56
PMEmail PosterICQ
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0