Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

PHP Build a Basic PHP Website (2018) Listing and Sorting Inventory Items Displaying Categories

Warning: Illegal string offset 'category' in /home/treehouse/workspace/inc/function.php on line 16

// here is my code that is exactly same, but I am getting the error : Warning: Illegal string offset 'category' in /home/treehouse/workspace/inc/function.php on line 16

<?php function get_item_HTML($id,$item) { $output = "<li><a href='#'><img src='" .$item["img"] . "' alt='" .$item["title"] . "'> " ."<p>'View Details'</p>" . "</a></li>"; return $output;

}

function array_category($catalog,$category) {

$output = array();

foreach ($catalog as $id => $item) { if (strtolower($category) == strtolower($item["category"])) { $output[] = $id; } } return $output; }

?>

1 Answer

That code is valid, that warning is being generated because the function is unable to find the "category" key from the catalog array. This leads me to believe that when you are calling the function it cannot find the catalog array from data.php.

We would really need to see the other code from the other files you have to tell you exactly what is wrong, but my best guess would be that you might not have data.php included in your catalog.php file. Make sure right below the "<?php" at the top you have both of these lines of code:

include("inc/data.php");
include("inc/functions.php");