We help IT Professionals succeed at work.

PHP array_push with string key

glynco
glynco asked
on
Medium Priority
816 Views
Last Modified: 2012-03-13
I have this initilize

$articles['Article'] = array('some string key' );

Open in new window


how can I assign the string key to this

array_push($articles[get_class($tempObject)], $tempObject);

Open in new window

Comment
Watch Question

Commented:
greetings glynco, , sorry, but I do not understand what you need to end up with in your $articles  array ? ?

you show your -
$articles['Article']
as being set to an array with One string in it, and in your "assign the string key" question you have it with - $tempObject  you do Not say, but from the name it is an Object, not a string. What is it you need to do, How do we know how to make - $tempObject - a string, if we do not know what Object it is? Or what you may need in the -
$articles['myClass'] array sub array  ??
Most Valuable Expert 2011
Author of the Year 2014

Commented:
Maybe something like this?
$object_name = get_class($object);
$articles[$object_name] = $object;

Open in new window

I do not know where array_push() fits into the equation ;-)

Author

Commented:
here is the Article.php class

class Article {
	public $title;
	public $author;
	public $pubdate;
	public $description;
	public $url;
	
	public function __construct($title, $author, $pubdate, $description, $url)  
    {  
        $this->title = $title;
	    $this->author = $author;
	    $this->pubdate = $pubdate;
	    $this->description = $description;
	    $this->url = $url;
    } 


}
?>

Open in new window

Author

Commented:
I need a key string to search for the article object.

Something like "Jungle Book" as the key string to search for, and the object is class Book.php which has titles, author name, etc.

return array(  
            "Jungle Book" => new Book("Jungle Book", "R. Kipling", "A classic book."),  
            "Moonwalker" => new Book("Moonwalker", "J. Walker", ""),  
            "PHP for Dummies" => new Book("PHP for Dummies", "Some Smart Guy", "")  
        );

Open in new window


http://php-html.net/tutorials/model-view-controller-in-php/
Most Valuable Expert 2011
Author of the Year 2014
Commented:
Something like "Jungle Book" as the key string to search for,...

The array you have shown above has "Jungle Book" as an array key.  In case this is what you're looking for, there is no search needed -- you simply address the object by array notation like this
$jb_object = $my_array["Jungle Book"];

Open in new window

But if you do not have array keys assigned to the data elements you want, you can use an iterator to locate the elements by title and assign the array keys like this
foreach ($my_array as $my_object)
{
    $title = (string)$my_object->title;
    $my_associative_array[$title] = $my_object;
}
$jb_object = $my_associative_array["Jungle Book"];

Open in new window

Author

Commented:
Thanks. I just added the class and it works.


foreach ($articles['Article'] as $my_object)
{
    $title = (string)$my_object->title;
    $my_associative_array[$title] = $my_object;
}

Author

Commented:
Thanks...

Explore More ContentExplore courses, solutions, and other research materials related to this topic.