@pritchin_maxim1
Начинающий IT-Разработчик

Как собрать массив?

Вопрос такой как собрать ассоциативный массив
private $name;
	private $lastname;
	private $nickname;
	private $email;

тут переменные которые уже привело в нужный вид
private function getArray() {
		$array = 
	}

Как тут собрать массив, но не со всеми переменными

$loginaction = [
			'nickname' => $nickname,
			'password' => $password,
		];
		$sql = "SELECT id, nickname, avatar, balance FROM `lk_user` WHERE nickname = :nickname AND password = :password LIMIT 1";
		$result = $this->db->row($sql, $loginaction);

сейчас это выглядит так но это не совсем удобно
Как сделать функцию которая будет собирать ассоциативный массив из переменных
  • Вопрос задан
  • 290 просмотров
Решения вопроса 3
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
Рискну предположить что вы хотите что-то типа php.net/manual/en/function.compact.php
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Как тут собрать массив, но не со всеми переменными
ок, по какому принципу собираетесь отбирать переменные которые действительно нужны?

UPD:
я скажу как реализовано нечто подобное у меня, а вы посмотрите или оно вам подходит, и если я правильно понимаю что вы хотите получить.
Для начала желательно отделять мух от котлет, то есть поля связи с бд выделены в отдельное 1 свойство, которое внутри массив, например $this->fields(это все ваши $password,$name etc), а все переменные настроечного характера - просто свойства объекта.
тогда для ваших целей достаточно сделать наборы полей в виде массива, и уже внутри использовать что-то типа

private function getArray($fieldsSet){  // $fieldsSet = массив нужных ключей, например array('name','password');
   $ret = array();
   foreach($this->fields as $key=>$val){
       if(in_array($key,$fieldsSet)){
           $ret["$key"] = $val;
       }
   }
}
Ответ написан
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
В вопросе много неизвестных, но если я понял хоть что-то верно, то примерно так:

<?php

class Hey {
	
	private $name;
	private $lastname;
	private $nickname;
	private $email;

	private function getArray($nickname, $password) { 

    	$loginaction = [
	      'nickname' => $nickname, 
	      'password' => $password, // где брать пароль, как параметры метода? Тогда я добавил туда же и nickname
	    ];

	    $sql = "SELECT * FROM `lk_user` WHERE nickname = :nickname AND password = :password LIMIT 1";
	    $result = $this->db->row($sql, $loginaction); // какой формат переменной result?

	    if ($result) {
		    // какие данные из БД надо вернуть в массив?

		    //если result - это объект, то присвоить значения можно так (это можно и пропустить, не ясна задача полностью):
		    $this->name = $result->name;
		    $this->lastname = $result->lastname;
		    $this->nickname = $result->nickname;
		    $this->email = $result->email;

		    // вернуть надо именно массив? ОК:
		    $res = [];
		    $res['name'] = $this->name;
		    $res['lastname'] = $this->lastname;
		    $res['nickname'] = $this->nickname;
		    $res['email'] = $this->email;

		    return $res;
		} else {
			return false;
		}

  	}

}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы