Very new to PHP Arrays and can't find out how to do a simple thing.
This is what I started out with:
<div class="crew-member">
<?php
$crewMember = "Tony Webster";
$crewMemberPicture = strtolower(str_replace(" ","-",$crewMember));
$crewTitle = "Senior Helmsman";
?>
<img src="images/crew/<?php echo $crewMemberPicture; ?>.jpg" alt="<?php echo $crewMember; ?>" />
<h4><?php echo $crewMember; ?></h4>
<h5><?php echo $crewTitle; ?></h5>
</div>
And then I was repeating that down the page. But I figured it'd be easier using an array and maybe a foreach loop of some description...
$crewMembers = array(
"Tony Webster" => array("Senior", "tony-webster"),
"John Reilly" => array("Junior", "john-reilly")
);
Is that array even going to work for me?
I then want to output these into a foreach loop (I think?) with HTML...
Not knowing much about arrays or foreach loops, I got stuck.
<?php
$crewMembers = array(
"Tony Webster" => array("Senior", "tony-webster"),
"John Reilly" => array("Junior", "john-reilly")
);
foreach ($crewMembers as $crewMember => $otherData) {
$crewTitle = $otherData[0];
$crewMemberPicture = $otherData[1];
?>
<div class="crew-member">
<img src="images/crew/<?php echo $crewMemberPicture; ?>.jpg" alt="<?php echo $crewMember; ?>" />
<h4><?php echo $crewMember; ?></h4>
<h5><?php echo $crewTitle; ?></h5>
</div>
<?php
}
?>
<?php
$team = [
['name' => 'Tony Webster`, 'title' => `Senior'],
['name' => 'John Reilly`, 'title' => `Junior'],
];
?>
<div class="crew-member">
<?php foreach ($team as $member) { ?>
<img src="images/crew/<?=strtolower(str_repeat(' ', '_', $member['name'])) ?>.jpg" alt="<?=$member['name'] ?>" />
<h4><?=$member['name'] ?></h4>
<h5><?=$member['title'] ?></h5>
<?php } ?>
</div>
For/foreach will be your friend here. Could do something like this...
<?
$crew_members = array();
$crew_members[] = array('name' => 'Bob', 'picture' => 'bob.jpg', 'title' => 'cult leader');
$crew_members[] = array('name' => 'Ricky', 'picture' => 'this_is_not_myspace.jpg', 'title' => 'listens to cult leader');
foreach($crew_members as $crew_member) {
// each $crew_member will be an array, var_dump($crew_member); die(); if you're curious
echo $crew_member['name']; // returns bob, ricky
echo $crew_member['picture']; // returns bob.jpg, this_is_not_myspace.jpg, etc...
}
?>
What you're doing is putting an array inside an array with keys that are strings so you can call them if you desire.